0

我想创建一个任务并分配给一个具有名字和姓氏的 has_one 个人资料的特定用户。

还有用户 has_many 任务。

我的新任务表是

 <%= form_for :task do |f| %> 

    <div>
    <%= f.label :task %>
    <%= f.text_area :task %>
    </div> 

    <div>
    <%= f.label :assigned_to %>
    <%= f.collection_select(:assigned_to, User.profile.all, :fist_name, :fist_name, :include_blank => 'None')%>
    </div> 

在集合选择中,我应该显示类似“Sam Parker (sam@org.com)”这样的所有用户都应该在集合选择字段中可用。

任何人都可以帮助我如何显示它。

4

1 回答 1

0

首先在这里阅读文档:

http://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-collection_select

我想您需要创建一个返回选项文本的方法,例如:

class User < ActiveRecordBase
  # ...
  def label_for_select
    "#{profile.full_name} (#{profile.email})"
  end
end

然后,在您看来,它将类似于:

<div>
  <%= f.label :assigned_to_id %>
  <%= f.collection_select(:assigned_to_id, User.all, :id, :label_for_select, :include_blank => 'None')%>
</div> 

请注意,表单设置的assigned_to_id不是assign_toruby​​ 对象。Rails 将assign_to根据这个 id 实例化对象。

于 2013-10-25T08:00:44.273 回答