我正在努力解决这个特殊情况。
首先,我准备了用户可以点击的链接
<%= link_to 'DOING', task_path(task_todo, new_status: Settings.task_status[:doing]), :method => :put %>
其次,我希望这与表格行相关联, 所以写得像这样。
<% @tasks_todo.each do |task_todo| %>
<tr data-link="<%= task_path(task_todo, new_status: Settings.task_status[:doing])%>">
<td><%= @projects.find(task_todo.project_id).project_name %></td>
<td><%= task_todo.task_name %></td>
<td><%= task_todo.memo %></td>
</tr>
<% end %>
coffeescript就是这样。
$ ->
$(document).on('click', 'tr[data-link]', (evt) ->
window.location = this.dataset.link
)
现在我可以使这一行可以点击,但方法仍然是'GET',所以它出错了“Controller#Action”。我怎么能把它变成'PUT'。
答案 0 :(得分:1)
link_to ... method: :put
做了一些JavaScript魔法。您无法使用window.location
发出PUT请求。只有两种方法可以发出PUT请求:
基本上,要重新创建Rails为您做的事情,您需要做的是创建一个表单元素,将一些输入元素放入其中,然后在表单上调用.submit()
。