heroku 上的 RoutingError(没有路由匹配 [GET])

RoutingError (No route matches [GET]) on heroku

在我的应用程序中,我使用 act_as_votable 为我的产品投票,它在本地主机上运行良好,但在 heroku 上我得到:

RoutingError (No route matches [GET] "/products/1/like"):

我的路线

resources :products do
    member do
      put "like" =>"products#upvote"
    end
    resources :previews, except: [:show, :index]
  end

产品控制器

def upvote
    @product = Product.find(params[:id])
    @product.upvote_from current_user
    redirect_to @product
  end

在我的产品展示页面

<%= link_to like_product_path(@product), method: :put do %>
          Add to Wishlist
          <% end %>

我认为这是因为 jquery 而发生的,所以我在显示页面中添加了 jquery,但问题仍然存在。任何帮助将不胜感激。

您最好的选择是使用 button_to,它会默认生成 POST 请求。

<%= button_to 'Add to Wishlist', like_product_path(@product), method: :put %>