0

ユーザーとチームの 2 つのモデルがあります。チームには、各ユーザーがチームに属する多くのユーザーを含めることができます。

team_id は、fk としてのユーザー テーブルの列です。

すべてのチームの team_id を含むユーザー作成フォームに選択ドロップダウンを作成したいと考えています。

このコードは私が望むことをしますが、

 <%= f.fields_for :teams do |builder| %>
    <p>
        <%= f.label :team_id, "Select Team For User" %>
        <%= builder.collection_select :team_initials, Team.all, :id, :team_initials %>
    </p>
<% end %>

id 値をユーザーに追加しようとはしません。ここにエラーがあります

    Parameters:
{"utf8"=>"✓",
 "authenticity_token"=>"xxxxx",
 "user"=>{"name"=>"brand new",
 "email"=>"test1@test.com",
 "password"=>"[FILTERED]",
 "password_confirmation"=>"[FILTERED]",
 "teams"=>{"team_initials"=>"27"}},
 "commit"=>"Create my account"}

チームモデルに追加できないと不平を言っています。

私がやりたいことは、ユーザー作成フォームの既存のすべてのチームの ID を取得することだけです。そのため、ユーザーをクレートするときに、そのユーザー チームを選択できます。

上記の team_initials がある理由は、よりユーザーフレンドリーなフィールドを選択に使用しようとしていたが、それでも値としてユーザーチーム ID を使用したためです。

4

1 に答える 1

0

あなたは正しい軌道に乗っていると思います。このfields_forメカニズムは、関連付けられたモデルに値を設定するためのものです。あなたがやろうとしているのは、関連付けを行うことだけだと思います。

したがって、fields_for行を失い、次にこのセクションを失う可能性があります。

builder.collection_select :team_initials, Team.all, :id, :team_initials

次のようにする必要があります。

f.collection_select :team_id, Team.all, :id, :team_initials

私はここで collection_select に関する情報を探しています: http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

"teams"=>{"team_initials"=>"27"}},これにより、このパラメーターが からに変更されると思います"team_id"=>"27",

それが修正されることを願っています。

于 2013-01-04T00:28:49.220 に答える