0

タスクを作成し、名前と姓を持つプロファイルが 1 つある特定のユーザーに割り当てたいと考えています。

また、ユーザー 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> 

フォームがruby​​ オブジェクトではassigned_to_idなく設定されていることに注意してください。assign_toRails はassign_to、この ID に基づいてオブジェクトをインスタンス化します。

于 2013-10-25T08:00:44.273 に答える