通过下拉列表更新无效。我在表单标签中有form_tag
我有循环。因此,该值将传递给数组。如何更新它的值。
在我的Period控制器中我有
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
在period_update视图中我有
<%= 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数组。
错误是
no implicit conversion of Symbol into Integer
我有主题模型,所有主题都在集合中。
Period模型具有subject_id
。我该如何更新?
我是rails的新手,我对此感到困惑。谢谢你提前。
答案 0 :(得分:0)
尝试使用options_from_collection_for_select时的行为不同:
<%= select_tag('subject_id', options_from_collection_for_select(Subject.all, :id, :name), {prompt: 'Select Sub'}) %>