2016-04-15 1 views
0

ドロップダウンによる更新が機能していません。私はform_tag私はループを持っているフォームタグ内にあります。したがって、値は配列で渡されます。どのようにして値を更新できますか?私の時代コントローラでドロップダウンで更新アレイレール

私は

<%= form_tag perio_update_institutes_path, method: :put do %> 
<% @period.each do |p|%> 
    <%= p.subject.name %> 
<%= select_tag('subject_id', options_for_select(Subject.all.collect{ |s| [s.name, s.id]}), {prompt: 'Select Sub'})%> 

<%end%> 
<%= submit_tag %> 

{"utf8"=>"✓", "_method"=>"put", "authenticity_token"=>"6LJrh2ct7VMGU6Siq/RXIMGz4kkxkVN81Jqa+eRcKb3rXq3XzBlv8gjHvjjVsPsJ4LF7ZEHF/GQ8+0906lhyUg==", "period"=>{"subject_id"=>["2", "2"]}, "commit"=>"Save changes"}

どのように私はsubject_id配列を更新することができていperiod_updateビューで

def period 
@period = Period.all 
end 

def period_update 
Period.update(perio_params) 
end 

private 
def perio_params 
    params.require([:period][:subject_id]).permit(:subject_id) 
end 

を持っています。

ERRORは、私はすべての被験者は、コレクションになります対象モデルを、持っている

no implicit conversion of Symbol into Integer 

です。 期間モデルはsubject_idです。どうすれば更新できますか? 私はレールが新しく、これで取り残されています。進んでいただきありがとうございます。それはoptions_from_collection_for_selectで動作が異なります場合

+0

あなたは、コードの一部とコメントしているのはなぜ? – Pavan

+0

ああ申し訳ありませんが、別の構文で試してみましたが、ここに貼り付けたときに、私は '<%= collection_select(s、s.id、Subject.all、:id、:name 、select:s.id、prompt:true)%> ' – Vikram

+0

識別子とメソッド呼び出しの間にスペースがあります:' @period .each'。エラーの原因となります。あなたは 'collection_select( 'some_key'、 'subject_id'、Subject.all、:id、:name、selected:s.id、prompt:true)'を使用しているはずです。しかし、あなたが実際に何をしようとしているのかわからないのは、あなたのコントローラについてもっと知ることなく、これはかなり理想的です。 – max

答えて

0

は試してみてください。

<%= select_tag('subject_id', options_from_collection_for_select(Subject.all, :id, :name), {prompt: 'Select Sub'}) %> 
関連する問題