仅供参考,Rails的新手
参数丢失或值为空:roster_id 提取的源(围绕第83行): 81 82 83 84 85
# end
def locker_params
params.require(:roster_id).permit(:id, :next_due, :notes, :key_num, :lockernum, :location, :row, :size, :memberID)
end
end
应用程序跟踪|框架跟踪全迹
app / controllers / lockers_controller.rb:83:locker_params'
app/controllers/lockers_controller.rb:52:in
中的“阻止更新”
app / controllers / lockers_controller.rb:51:在“更新”中
请求
参数:
{"utf8"=>"✓",
"_method"=>"patch",
"authenticity_token"=>"uq6+5NchGu0or3JfIquY99goeg8uOQ5B2ttMTQ2O6mgE/aeoNyUT7Le+i+n/Ug5a44rwQkJ/ZhecTlJgnZzhtQ==",
"locker"=>{"roster_id"=>"199", "location"=>"FrontL "},
"commit"=>"Update Locker",
"id"=>"573"}
如您在请求中看到的那样,参数roster_id在请求中,并且确实具有值。
表单使用从名册表构建的数组
<div class="actions">
<%= form.collection_select(:roster_id,@rosters.all, :id, :formatted_name) %>
Location <%= form.text_field :location %>
<%= form.submit %>
</div>
我想念的是什么。如果我删除.require并将roster_id添加到许可中,则表单不会出错,但是表不会更新。
答案 0 :(得分:2)
我认为您尝试输入错误的参数,因此您的locker_params
方法返回空值。试试:
params.require(:locker).permit(:roster_id, :location...)