Ruby on rails 简单表单关联自定义标签名称

Ruby on rails 简单表单关联自定义标签名称,ruby-on-rails,simple-form,Ruby On Rails,Simple Form,我一直在努力解决我认为很简单的问题: 在Rails 3.0.8中使用simple_form 1.4 gem 我有两种型号,所有者和所有者类型 class Owner < ActiveRecord::Base belongs_to :own_type attr_accessible :name, :own_type_id end class OwnerType < ActiveRecord::Base has_many :owners attr_accessible

我一直在努力解决我认为很简单的问题:

在Rails 3.0.8中使用simple_form 1.4 gem

我有两种型号,所有者和所有者类型

class Owner < ActiveRecord::Base
  belongs_to :own_type
  attr_accessible :name, :own_type_id
end

class OwnerType < ActiveRecord::Base
  has_many :owners
  attr_accessible :name, :subtype_name
end
类所有者
在所有者视图的“我的表单”部分中,我希望有一个选择框,其中显示所有者类型关联的名称和子类型名称。
…类似这样:所有者类型:[name | subtype_name]例如[政府|联邦];[政府|市政]

我的视图现在包含:app/views/owners/_form.html.erb

<%= simple_form_for @owner do |f| %>
  <%= f.error_messages %>
  <%= f.input :name %>
  <%= f.association :owner_type, :include_blank => false %>
  <%= f.button :submit %>
<% end %>

假%>
…默认情况下,f.association仅列出owner_type.name字段。如何指定不同的字段,或者在我的例子中指定两个字段

感谢所有的帮助;提前谢谢


DJ

您必须为此使用:label\u方法选项

<%= f.association :owner_type, :include_blank => false, :label_method => lambda { |owner| "#{owner.name} | #{owner.subtype_name}" } %>
false,:label_-method=>lambda{{| owner |“{owner.name}}{124;{owner.subtype_-name}”}%>
或者,如果您在所有者的类上定义了select_label方法,则可以执行以下操作

<%= f.association :owner_type, :include_blank => false, :label_method => :select_label %>
false,:label\u method=>:select\u label%>

最简单的方法是实现在模型上添加标签的方法。像这样:

class OwnerType < ActiveRecord::Base
  def to_label
    "#{name} | #{subtype_name}"
  end
end

您也可以在simple_form.rb初始值设定项上更改此选项,也可以将块或方法传递给输入的
:label_method
选项。

感谢您的及时回复。它就像一个符咒。如果我可以问一个解释:为什么在label_方法中,您有owner和owner.name;实际上,当值位于owner_类型模型中时(我认为它应该是…lambda{124; owner_类型|“#{owner_类型.name}{owner_类型.subtype_name}}@dj_44:啊,我还以为它是owner模型。可以为lambdas使用任何参数名,
lambda{a}a*a*2}
lambda{b*2}相同
,就像函数一样。实际上,所有者和所有者类型的工作方式似乎相同。交叉发布…再次感谢在一个相关的问题中,如何在show.html.erb页面上显示相同的lambda值,而不是所有者类型id。或者,可能更像我的所有者控制器show方法,当前是def show@owner=Owner.find(参数[:id])end@dj_44:你能发布一个指向show.html.erb内容的链接吗?谢谢你们两位的回复。天哪,把它添加到文档中会让他们丧命吗?@RyanSandridge它是打开的source@kris绝对公平……很明显,2014年5月我很懒
:to_label, :name, :title, :to_s