我正在尝试使用简单的表单在单击按钮时更新嵌套对象。我正在制作一个待办事项列表,其中单个任务/项目嵌套在整个列表中。单击按钮应将任务的已完成属性更新为 true。在我尝试在 Wice Grid 中重新创建我的表格之前,按钮单击更新工作正常。由于某种原因,相同的代码不再适用于 WiceGrid。
当我在 HAML 中手动构建表时,此更新按钮起作用:
%td
= simple_form_for [@checklist, item] do |f|
= f.hidden_field :completed, :value => true
%button.btn.btn-success.btn-sm Complete
使用 WiceGrid 重建表后,我不断收到错误消息。下面是 WiceGrid 部分。两者有什么区别?
:erb
<%# show_filters: :when_filtered %>
<%= grid(@tasks_grid) do |g|
g.column name: 'To Do', attribute: 'description' do |task|
task.description
end
g.column name: 'Status', attribute: 'completed' do |task|
task.completed ? 'Completed' : ''
end
g.column name: 'Due Date', attribute: 'due_date' do |task|
task.due_date.strftime("%B %d, %Y")
end
g.column do |task|
"<button type='button' class='btn btn-primary btn-sm' data-toggle='modal' data- target='#task_#{task.id}'>Edit</button>".html_safe
end
g.column do |task|
link_to('Delete', wedding_checklist_checklist_item_path(@checklist, task), class: "btn btn -warning btn-sm", :method => :delete, :data => { :confirm => 'Are you sure you want to delete this task?' })
end
g.column do |task|
simple_form_for [@checklist, task] do |f|
f.hidden_field :completed, :value => true
f.submit "Complete", class: "btn btn-success btn-sm"
end
end
end -%>
这是 checklist_items_controller.rb 文件:
private
def checklist_item_params
params.require(:checklist_item).permit(:event_checklist_id, :description, :due_date, :completed, :user_id)
end
我不断收到的错误是:参数丢失或值为空:checklist_item
我以为 checklist_item 已经被“任务”通过了?