【发布时间】:2015-02-24 15:06:03
【问题描述】:
我有以下错误:
ERROR["test_character_should_be_valid", CharacterTest, 0.214787]
test_character_should_be_valid#CharacterTest (0.21s)
NoMethodError: NoMethodError: undefined method `val' for "$1":Arel::Nodes::BindParam
app/models/user.rb:11:in `block in <class:User>'
test/models/character_test.rb:8:in `setup'
来自以下测试:test/models/character_test.rb:
require 'test_helper'
class CharacterTest < ActiveSupport::TestCase
def setup
@user = User.new(name: "Example User", email: "user@example.com", callsign: "example",
password: "foobar", password_confirmation: "foobar")
@user.save
@character = @user.character
end
test "character should be valid" do
assert @character.valid?
end
end # CharacterTest
在gemfile中:
gem 'arel', '6.0.0.beta2'
字符.rb:
class Character < ActiveRecord::Base
belongs_to :sociable, polymorphic: true
end
user.rb:
class User < ActiveRecord::Base
has_one :character, as: :sociable
before_validation do
self.create_character unless character # line 11
end
.
.
end
我找不到有关此特定 arel 错误的任何信息。我的 arel gem 是 6.0.0.beta2,它似乎可以解决其他问题(如here)。有没有人见过这样的东西?
【问题讨论】:
标签: ruby-on-rails unit-testing arel