1

我正在使用grouped_collection_select多态关联来分配 acompanyperson任务。问题是人们有名字和姓氏,而公司只有名字。我想在菜单中使用:fnamelname作为option_key_method人员组的串联,我想在菜单中使用:name公司option_key_method组。

但是,我在 Google 调查中没有遇到过这个问题。就目前而言,我使用:emailas 是option_key_method因为它是两个模型共享的最显着的字段:

<%= f.grouped_collection_select :entity_id, [Company, Person], :all, :model_name, :to_global_id, :email %>

我该如何设置它以使用由两种不同模型实现的两种不同类型的名称字段?

4

1 回答 1

1

您可以将 lambda 方法传递给option_key_method,它获取当前手头PersonGroup您的情况下的对象,您可以对其进行所需的处理

例子:

<%= f.grouped_collection_select :entity_id, [Company, Person], :all, :model_name, :to_global_id, lambda {|company_or_person_object| company_or_person_object.instance_of? Company ? company_or_person_object.fname + company_or_person_object.lname : company_or_person_object.name} %>
于 2015-10-21T09:24:10.003 回答