http://pastie.org/1098444
)
puts "Name_and_key was referenced."
module Name_and_key
def normalize(s)
s.mb_chars.normalize(:kd).gsub(/[^\-x00-\x7F]/n, '').to_s
end
def name=(name)
self[:name] = name
self[:key] = normalize(name).downcase
end
def name
self[:name]
end
def key=(key)
self[:key] = normalize(key).downcase
end
def key
self[:key]
end
end
但这些值似乎并没有到达模型中。
class Category < ActiveRecord::Base
include Name_and_key
has_many :tiles
validates_presence_of :name, :key
end
cat = Category.create do |c|
c.name = "cat"
end
ActiveRecord::语句无效:SQLite3::ConstraintException:类别。名称不能为空:插入“类别”(“已创建”、“已更新”、“id”)值('2010-08-15 23:20:43','2010-08-15 23:20:43',980190962)
失败的单元测试
test "can be created" do
cat = Category.create do |c|
c.name = "cat"
end
tile = Tile.create do |t|
t.name = "test"
t.category = cat
end
assert tile.save
终止
1) Error:
可以创建测试(TiletTest):
/用户/janlipens/。rvm/gems/ruby-1.9。2-rc2@rails3/gems/activerecord-3.0。0.rc/lib/active\u record/connection\u adapters/abstract\u adapter。rb:202:in
rescue in log'
/Users/janlimpens/.rvm/gems/ruby-1.9.2-rc2@rails3/gems/activerecord-3.0.0.rc/lib/active_record/connection_adapters/abstract_adapter.rb:194:in
日志'
/用户/janlipens/。rvm/gems/ruby-1.9。2-rc2@rails3/gems/activerecord-3.0。0.rc/lib/active_record/connection_adapters/sqlite_adapter。rb:135:in
execute'
/Users/janlimpens/.rvm/gems/ruby-1.9.2-rc2@rails3/gems/activerecord-3.0.0.rc/lib/active_record/connection_adapters/abstract/database_statements.rb:239:in
插入固定装置'
/用户/janlipens/。rvm/gems/ruby-1.9。2-rc2@rails3/gems/activerecord-3.0。0.rc/lib/active_record/fixtures。rb:634:in
block in insert_fixtures'
/Users/janlimpens/.rvm/gems/ruby-1.9.2-rc2@rails3/gems/activerecord-3.0.0.rc/lib/active_record/fixtures.rb:570:in
各自的
/用户/janlipens/。rvm/gems/ruby-1.9。2-rc2@rails3/gems/activerecord-3.0。0.rc/lib/active_record/fixtures。rb:570:in
insert_fixtures'
/Users/janlimpens/.rvm/gems/ruby-1.9.2-rc2@rails3/gems/activerecord-3.0.0.rc/lib/active_record/fixtures.rb:514:in
/用户/janlipens/。rvm/gems/ruby-1.9。2-rc2@rails3/gems/activerecord-3.0。0.rc/lib/active_record/fixtures。rb:514:in
each'
/Users/janlimpens/.rvm/gems/ruby-1.9.2-rc2@rails3/gems/activerecord-3.0.0.rc/lib/active_record/fixtures.rb:514:in
“创建_装置”中的块(3层)
/用户/janlipens/。rvm/gems/ruby-1.9。2-rc2@rails3/gems/activerecord-3.0。0.rc/lib/active\u record/connection\u adapters/abstract/database\u语句。rb:139:in
transaction'
/Users/janlimpens/.rvm/gems/ruby-1.9.2-rc2@rails3/gems/activerecord-3.0.0.rc/lib/active_record/fixtures.rb:512:in
“创建_装置”中的块(2层)
/用户/janlipens/。rvm/gems/ruby-1.9。2-rc2@rails3/gems/activerecord-3.0。0.rc/lib/active\u record/connection\u adapters/abstract\u adapter。rb:104:in
disable_referential_integrity'
/Users/janlimpens/.rvm/gems/ruby-1.9.2-rc2@rails3/gems/activerecord-3.0.0.rc/lib/active_record/fixtures.rb:503:in
/用户/janlipens/。rvm/gems/ruby-1.9。2-rc2@rails3/gems/activesupport-3.0。0.rc/lib/active_support/benchmarkable。rb:55:in
silence'
/Users/janlimpens/.rvm/gems/ruby-1.9.2-rc2@rails3/gems/activerecord-3.0.0.rc/lib/active_record/fixtures.rb:502:in
创建_装置'
load_fixtures'
/Users/janlimpens/.rvm/gems/ruby-1.9.2-rc2@rails3/gems/activerecord-3.0.0.rc/lib/active_record/fixtures.rb:926:in
安装固定装置'
/用户/janlipens/。rvm/gems/ruby-1.9。2-rc2@rails3/gems/activesupport-3.0。0.rc/lib/active_support/callbacks。rb:409:in
_run_setup_callbacks'
/Users/janlimpens/.rvm/gems/ruby-1.9.2-rc2@rails3/gems/activesupport-3.0.0.rc/lib/active_support/testing/setup_and_teardown.rb:34:in