0

我正在尝试使用简单的表单在单击按钮时更新嵌套对象。我正在制作一个待办事项列表,其中单个任务/项目嵌套在整个列表中。单击按钮应将任务的已完成属性更新为 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 已经被“任务”通过了?

4

1 回答 1

0

我使用了部分功能,现在 Complete 功能可以正常工作:

g.column do |task|
  render partial: 'complete_task', locals: {item: task}
end
于 2014-12-15T16:14:16.173 回答