ドロップダウンによる更新が機能していません。私は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で動作が異なります場合
あなたは、コードの一部とコメントしているのはなぜ? – Pavan
ああ申し訳ありませんが、別の構文で試してみましたが、ここに貼り付けたときに、私は '<%= collection_select(s、s.id、Subject.all、:id、:name 、select:s.id、prompt:true)%> ' – Vikram
識別子とメソッド呼び出しの間にスペースがあります:' @period .each'。エラーの原因となります。あなたは 'collection_select( 'some_key'、 'subject_id'、Subject.all、:id、:name、selected:s.id、prompt:true)'を使用しているはずです。しかし、あなたが実際に何をしようとしているのかわからないのは、あなたのコントローラについてもっと知ることなく、これはかなり理想的です。 – max