私はフォームを使用して、特定のユーザーが行った旅行に新しいレビューを作成できます。私のレビューテーブルには現在、以下の列(rating、trip_id、description)があります。私が抱えている問題は、ユーザーが行った旅行から都市名のテキストを表示することです。Rails:form collection_set、関連するテーブルを介してテキストを表示するのに役立ちます
Rails Doc for collection_setは、collection_select(メソッド、コレクション、value_method、text_method、options = {}、html_options = {})のargsを受け入れます。テキストメソッドに関して、私は旅行の実際の都市名を表示できるようにしたいが、都市名はtripテーブル内のcity_idによって参照される。私は彼らの団体を通じて存在するこのコラムにアクセスする方法がわかりません。
出張テーブル(user_idは、CITY_ID) 市テーブル(名前、説明)
<%= form_for @review do |f| %>
<%= f.label :rating %>
<%= f.number_field :rating %> <br>
<%= f.label :trip_id %>
<%= f.collection_select :trip_id, @user.trips, :id, :city_id %>
<%= f.label :description %>
<%= f.text_area :description %> <br>
<%= f.submit %>
<% end %>
私の最初の時間は、レールのフォームについて尋ねては、ので、私は私が良く知らせるために質問を更新することができますどのようにお知らせください。
恐ろしいですね!これはまさに私が必要としていたものです。方法がどのように機能するか、具体的にどのようにTripモデルがCityモデルにアクセスできるかを説明できますか? belongs_to関係を最初に設定する必要があるからですか? – jamesvphan
正確には 'belongs_to'を追加すると、' city_id'が 'City'に対応することをActiveRecordが知ることができ、' city'にアクセスするときに読み込まれます。団体に関する文書はこれについてよく説明しています:http://guides.rubyonrails.org/association_basics.html – gwcodes