2017-06-13 6 views
1

私は2つのモデルを持っています。RailsマップされたフィールドのIDをドロップダウンリストに入れる方法

Countries 
name:string 

Descriptions 
title:string 
text:string 
country_id:integer 

` 私は、ドロップダウンリストから、国を選択したときの説明に国のIDを追加する方法?

<%= form_for @description, :url => {:action => "create", :id => "#{@tour.id}" }, :html => { :multipart => true } do |f| %> 

<%= f.label :Title %><br/> 
<%= f.text_field :title %><br/> 

<%= f.label :Desc %><br/> 
<%= f.text_field :text %><br/> 

<%= f.select :city, (@cities.map { |l| [l.name, l.name] }) %> 


<%= f.submit "Add"%> 

<% end %> 

コントローラ

def new 
    @description = Description.new 
    @tour = Tour.find(params[:id]) 
    @cities = City.all 
... 
    end 

def create 
    @tour = Tour.find(params[:id]) 
    @description = @tour.descriptions.build(description_params) 
end 

私はあなたがcollection_selectを使用して試すことができます任意のヒントや便利なリンク:)

答えて

0

ためGREATFULなります。

例:

f.collection_select :country_id, Country.all, :id, :name 

最初のパラメータ(:COUNTRY_ID)バックエンドに送信されますのparamの名前です。

第2パラメータは、オプションを設定するレコードの集合です。

第3パラメータは、オプション値を指定します。この場合、idを入力したいので、:idと入力します。

第4パラメータは、オプションのラベルを指定します。これは、人間が判読可能なオプションの名前です。この場合、おそらく国の名前が必要なので、:countryと入力してください。

+0

ありがとうございます。 – Yurii10

+0

私の喜びです。お役に立てて嬉しいです。 –

関連する問題