【发布时间】:2010-02-12 01:50:53
【问题描述】:
我有一个用户和一个配置文件模型。一个用户可以有多个配置文件。在用户创建过程中,我只需要从我的用户模型中的个人资料部分(即电话号码)访问一个信息。因此,我试图通过attr_accessible 来完成它。我的 user.rb 看起来像这样。
has_many :profiles
attr_accessible :handle, :email, :password, :profile_mobile_number
attr_accessor : :profile_mobile_number
我面临的问题是,当我尝试在 user.rb 的方法中调用 getter 方法 profile_mobile_number 时(该方法是私有的,尽管我认为没关系),我得到一个 null价值。我在 users/new.html.erb 表单中使用以下内容
我的问题是这样做的正确方法是什么?我应该使用<% f.fields_for :profile do |ff| -%> 还是<% f.fields_for :profiles do |ff| -%>(注意第二个是复数)。当我使用复数 :profiles 时,我什至看不到表单上的字段。我在这里想念什么?模型 user.rb 中需要使用的时态是什么? :profile_phone_number 还是 :profiles_phone_number?谢谢。
【问题讨论】:
-
就像我说的那样,我正在使用 f.fields_for :profiles 并且表单中的字段没有显示出来。原来我必须在控制器中添加@user.profiles.build。但现在我无法在 user.rb 中同时拥有 attr_accessible 和 accept_nested_attributes_for。前者优先于后者。但是我确实希望对用户模型的属性具有 attr_accesible 属性,同时不限制对配置文件模型属性的访问。有任何想法吗?谢谢。
标签: ruby-on-rails ruby nested-forms