Ruby on rails 如何将的表单替换为指向的链接?

Ruby on rails 如何将的表单替换为指向的链接?,ruby-on-rails,simple-form,Ruby On Rails,Simple Form,我觉得我在滥用form_for(和simple_form_for)来更新记录的单个隐藏属性。以下是一个例子: <%= simple_form_for :present, url: present_path(list_item), method: 'put' do |f| %> <%= f.hidden_field :ordered, value: "1" %> <%= f.button :submit, "ordered", class: "btn

我觉得我在滥用form_for(和simple_form_for)来更新记录的单个隐藏属性。以下是一个例子:

<%= simple_form_for :present, url: present_path(list_item), method: 'put' do |f| %>
    <%= f.hidden_field :ordered, value: "1" %>
    <%= f.button :submit, "ordered", class: "btn btn-mini" %>
<% end %>

本质上,这提供了一个单一的按钮,用户可以按下该按钮将
present
标记为“ordered”。在后端,它将当前
列表项的属性
:ordered
更新为
1

我觉得这是一种欺骗,因为它本身不是一种合适的
形式。我更希望有一个链接到
,当点击它时,它会更新属性

我想链接到
必须是
方法:
感知才能更新属性

是否可以将我的
的简单表单替换为指向的单个链接?

是的,请使用

link_to 'Ordered', present_path(list_item, ordered: 1), method: :put
是的,用

link_to 'Ordered', present_path(list_item, ordered: 1), method: :put
尝试使用:

link_to 'Ordered', present_path(list_item, present: {ordered: 1}), method: :put
尝试使用:

link_to 'Ordered', present_path(list_item, present: {ordered: 1}), method: :put

此外,除了答案,将其设置为
remote:true
表单并将其设置为就地切换。此外,将其设置为
remote:true
表单并将其设置为就地切换。有趣的是,链接是有效的,我在我的日志中看到了这一点:Started PUT“/presents/9?ordered=1”但是,唉,属性没有更新。有趣的是-链接是有效的,我在日志中看到了这一点:Started PUT“/presents/9?ordered=1”,但遗憾的是,属性没有更新。