【发布时间】:2019-05-23 18:16:13
【问题描述】:
我在实现方法 link_to 时遇到问题。我的程序使用链接来调用控制器方法,该方法执行一些逻辑并呈现部分。问题是我无法获得调用控制器方法的链接。我试过用 button_to 调用相同的控制器方法,它似乎工作。查看 ActionView 辅助方法 button_to 和 link_to 的 API,参数似乎应该相同。然而,下面两行代码做了两件不同的事情。
_product.html.erb
<%= link_to 'view individual', products_view_individual_product_page_path(product_id: product.id)%>
<%= button_to 'view individual', products_view_individual_product_page_path(product_id: product.id)%>
link_to 调用将导致错误 ActiveRecord::RecordNotFound 错误指出“找不到具有 'id'=view_individual_product_page 的产品”并且传递的参数是 {"product_id"=>"261", "id"=>" view_individual_product_page"},我不确定为什么它试图将我的控制器方法的路径作为 id 传递。但是 button_to 代码行工作得很好,我在指定的控制器方法中。这是我的 routes.rb 文件中的路由条目...
routes.rb
post 'products/view_individual_product_page'
谁能向我解释我在这里做错了什么,我在网上找不到太多关于为什么路径在 link_to 中作为 ID 而不是 button_to 传递的信息
【问题讨论】:
标签: ruby-on-rails ruby erb