在我将我的应用程序从 Rails 3.2.13 更新到 4.2 link_to 后停止工作(参数数量错误(0..1 为 2)

After i upate my app from Rails 3.2.13 to 4.2 link_to stop working (wrong number of arguments (2 for 0..1)

我的应用是 运行 Rails 3.2.13,一切正常。一旦我尝试更新到 Rails 4.2,我设法解决了所有问题,现在我无法解决 link_to 的问题。这是一个例子:

<%= link_to 'Remove', {:controller=>'connect', :action=>'remove_from_cart', :id=> donation.id} %>

这是我收到的错误错误的参数数量(2 代表 0..1):

据我设法发现,我必须只向 link 提供一个参数,如果我将上面的示例更新为:

<%= link_to 'Remove', '/connect/remove_from_cart' + donation.id} %>

它会解决问题,但我不认为这是正确且非常聪明的解决方法,因为我在整个应用程序中有很多 links。

为什么 link_to 更新后突然停止工作可能是什么问题?

如有任何帮助或建议,我们将不胜感激! 谢谢

你应该这样做:

<%= link_to 'Remove', '/connect/remove_from_cart', donation_id: donation.id %>

您可以通过将其放入您的路线文件来进一步清理它:

post '/connect/remove_from_cart/:donation_id', to: 'connect#remove_from_cart', as: :remove_from_cart

并将此代码用于您的 link

<%= link_to 'Remove', remove_from_cart_path(donation_id: donation.id), method: :post %>