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

在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

在Owner视图的_表单部分中,我希望有一个 Select 框,显示Owner类型关联的名称和子类型名称

我的视图现在包含:app/views/owners/_form.html.雇员再培训局

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

...仅键入"所有者"列表.默认情况下,"名称"字段.如何指定不同的字段,或者在我的例子中指定两个字段?

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

流行音乐播音员

推荐答案

为此,您必须使用:label_方法选项.

<%= f.association :owner_type, :include_blank => false, :label_method => lambda { |owner| "#{owner.name} | #{owner.subtype_name}" } %>

或者,如果在所有者的类上定义了select_label方法,则可以执行以下操作:

<%= f.association :owner_type, :include_blank => false, :label_method => :select_label %>

Ruby-on-rails相关问答推荐

使用FactoryBot测试ActiveStorage的RSpec请求规范

Sidekiq with Rails - 控制台与 rake 任务中的不同 Sidekiq 实例

Rails 7.0.4 和 link_to 的数据确认不起作用

ruby on rails 中的自定义关联

Ruby on rails 查询不知道怎么写

Selenium chromedriver:无法从不可键入的键构造KeyEvent

OpenSSL::SSL::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read server hello A

如何在 Rails 上生成 AuthenticityToken

如何按值按降序对哈希进行排序并在 ruby​​ 中输出哈希?

是否有不涉及删除 Gemfile.lock 的在任何源中找不到 *gem*错误的修复?

rails 4 before_validation on: :create 或 on: :save

在 Rails 生产中禁用assets资源 缩小

强参数需要多个

快速添加链接[:notice]

何时使用 Helpers 而不是 Partials

Rails 3.1 中的 Rails.cache 错误 - TypeError: can't dump hash with default proc

如何在rails中正确使用单选按钮?

资源和资源方法之间的区别

如何设置 MiniTest?

Sidekiq Rails 4.2 使用 Active Job 还是 Worker?有什么不同