ruby-on-rails - Rails 是否支持带有方法 post 的 link_to?
问题描述
我有一个导轨link_to
,我想用它来运行一个帖子......
<%= link_to 'Unfollow', follows_path(user_id: u.id), method: :delete, class: 'text-right btn btn-primary' %>
它的路线:
resource :follows, only: %i[create destroy]
但是,当我单击它时,它会作为 get 运行:
Started GET "/follows?user_id=1" for ::1 at 2020-05-27 00:51:00 +0100
ActionController::RoutingError (No route matches [GET] "/follows"):
我已经检查了关于使用link_to
作为发布方法的多个问题,但无济于事。我认为值得一提的是,HTML 呈现为:
<a class="text-right btn btn-primary" rel="nofollow" data-method="delete" href="/follows?user_id=8">Unfollow</a>
然而,我最终放弃了使用这样的小表格:
<% if !(current_user.is_following?(@user)) %>
<% @follow = Follow.new %>
<%= form_for (@follow) do |f| %>
<%= hidden_field_tag :user_id, @user.id %>
<%= f.submit "Follow", class: "btn btn-primary" %>
<% end %>
<% else %>
<% @follow = Follow.new %>
<%= form_for (@follow), method: :delete do |f| %>
<%= hidden_field_tag :user_id, @user.id %>
<%= f.submit "Unfollow", class: "btn btn-primary" %>
<% end %>
<% end %>
是否不再可能使用 post 方法link_to
或语法已更改?
解决方案
将 follow_path 与单数不跟随
<%= link_to 'Unfollow', follow_path(user_id: u.id), method: :delete, class: 'text-right btn btn-primary' %>