2016-05-05 19 views
1

私はadd関数+ viewを持っています。場合によっては、ユーザーが何らかのアクションを実行するように指定し、idをadd関数に送信する関数を呼び出すことができます。レールは選択タグを事前設定された値に設定します

このパラメータがnilでなければ、選択タグはこの値で事前定義される必要があります。作業

<% if !params[:channel_id].nil? %> 
     <% :channel_id << params[:channel_id] %> 
<% end %> 

厥ない:

は、私はこれを試してみました。

選択タグは次のようになります。これを実現するためのソリューションを

<%= f.collection_select :channel_id, @channels, :id, :channelname, {prompt: (t "channel.add.prompt")}, class: "form-control", :required => :true %> 

ありますか?

+0

'form_for'の定義がどのようになっているのかを投稿してください。 – spickermann

答えて

3

あなたは自分のcollection_selectに値を追加することができselected:キー

<%= f.collection_select :channel_id, @channels, :id, :channelname, {prompt: (t "channel.add.prompt"), selected: "<id of record to be selected>"}, class: "form-control", :required => :true %> 
+0

最初の解決方法はperfektです!ありがとう – Felix

0

<%= f.collection_select :channel_id, @channels, :id, :channelname, prompt: (t "channel.add.prompt"), class: "form-control", :required => :true, selected: params[:channel_id] || 2 %> 
0

あなたが試すことができます使用します。 - 私は希望

<%= f.collection_select :channel_id, @channels, :id, :channelname, 
     { 
     prompt: t('channel.add.prompt'), 
     selected: params[:channel_id] 
     }, 
     class: 'form-control', required: true %> 

別のオプション - フォームのオブジェクトを初期化するときにこの値を設定します。これはあなたのform_forがどのように見えるかに依存しますが、それは次のようになります。

それがこのように行われている場合
# in the controller 
@model = Model.new(channel_id: params[:channel_id]) 

# in the view 
<%= form_for @model do |f| %> 

、その後、collection_selectタグを変更する必要はありません。

+0

params [:channel_id – Felix

+0

]の隣にシンタックスエラーを返します。 'selected:params [:channel_id] || 2 '私の投稿を更新してください。チャンネルIDがゼロでないかデフォルト値2のようなものがあれば、 –

関連する問題