1

フィクスチャと予測の2つのモデルがあります。フィクスチャには多くの予測があります。

スコアを予測するために、ユーザーにフォームに記入してもらいたいのですが。フィクスチャモデルにはすべてのフィクスチャが事前に入力されているため、新しい予測レコードのみを作成できるように、それらを予測フォームで使用したいと思います。

別のモデルからデータを取得してフォームで使用するにはどうすればよいですか。

:home_team
:away_team
:fixture_date

だから私が欲しい形で

Home_team VS Away Team    Enter Home Score   Enter Away Score

その趣旨で、私が知りたいのは、フィクスチャモデルからデータにアクセスしてフォームに表示する方法です。

ここでcollection_selectを使用しますか?各フィクスチャを個別にリストする必要があるので、それは機能しないと思いますか?

感謝する助け

ありがとう

4

1 に答える 1

1

私があなたを完全にフォローしているかどうかはわかりませんが、これは役立つかもしれません。

collection_selectあなたが言及したことはこのように機能します:

collection_select "model_from_where_you_get_data", "id_of_collection", "SQL_query", "value_of_the_field", "names_of_the_fields_which_are_displayed_to_user", "options{}" (no quotes)

したがって、たとえば:

collection_select :fixtures, :home_team, Fixture.select(:home_team).uniq, :home_team, :home_team, prompt: true

これを使用すると、これを単純化できますfields_for(これは、関連付けを介してデータにアクセスしたり、その関連付けにデータを保存する必要がある場合にフィールドを追加したりするために使用できるものです)

<%= form_for @prediction do |f| %>
  <%= f.fields_for :fixture do |ff| %>
     <%= ff.collection_select :home_team, Fixture.select(:home_team).uniq, :home_team, :home_team, prompt: true %>
  <% end %>
<% end %>

私は複数形化を台無しにしたかもしれませんが、それがあなたが望むものであれば問題にはならないはずです。

于 2013-03-25T23:23:04.317 に答える