【问题标题】:Ror Active Record "component" classesRor Active Record“组件”类
【发布时间】:2010-08-15 21:56:13
【问题描述】:

根据我使用 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 列(或任何约定)?

【问题讨论】:

  • 你能解释一下你到底想做什么吗?

标签: ruby activerecord ruby-on-rails-3


【解决方案1】:

这就是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)。

【讨论】:

  • 非常感谢,这样就可以了 :)
猜你喜欢
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 2013-02-18
  • 2012-02-03
  • 2013-02-22
  • 1970-01-01
  • 2014-12-24
  • 1970-01-01
相关资源
最近更新 更多