来自我对nHibernate的经验,我想知道如何在ActiveRecord中映射(n)hibernate的组件类
class Person < ActiveRecord::Base
#somehow get a :name attribute here
end
class Name
@fist_name
@last_name
end
如何只用一个表来完成(所以这不是1:1,但是我想在db中有一个:name_first_name列(或者是什么约定)?
答案 0 :(得分:2)
这就是composed_of的用途。
对于你的例子:
class Person < ActiveRecord::Base
composed_of :name, :class_name => "Name", :mapping =>
[ # database ruby
%w[ first_name first_name ],
%w[ last_name last_name ]
],
end
class Name
attr_accessor :first_name, :last_name
end
然后,您必须添加两个数据库列(first_name,last_name)。