0

我的表单包含以下标签:

<%= f.collection_select :employee_id, @employees, :id, :value, :prompt => true  %>

员工看起来像这样:

employee
  - attr1
  - attr2
  - user
     - firstname
     - lastname

我的问题:如何将lastnamean设置employee为选择字段中的值?我很确定这是可能的,但我认为我在语法上有一些差距。

4

2 回答 2

0

您可能会问自己,为什么我<%= f.select %>在 Ruby on Rails Api 上使用 FormOptionHelper,这collection_select与它非常相似,但它返回并标记了值的集合。而select为提供的对象和方法创建一系列包含的选项标签。因此,在这样说时,我相信您可以拥有以下内容:

<%= f.select(:employee_id, Employee.all.collect { |emp| [emp.lastname, user.id] }
             .sort{ |a, b| a[0] <=> b[0] }, {:prompt => "Select a Employee"}) %>

这将选择所有员工并按姓氏对他们进行排序。

于 2013-06-17T22:40:13.407 回答
0

为什么要这么做?

这是可能的,有:

<%= f.collection_select :employee_id, @employees, :last_name, :text_method, :prompt => true %>

:text_method调用成员的方法在哪里@employees将返回您希望出现在下拉列表中的文本。

于 2013-06-17T22:15:12.703 回答