我遇到导轨路由问题。
错误是:
No route matches {:controller=>"orders", :action=>"sell_item"}
路线规则如下:
match 'orders/sell/:id' => 'orders#sell_item', as: 'sell_item'
视图文件中的链接生成:
<%= link_to 'sell', sell_item_url, id: line_item.id %>
OrdersController中的函数
def sell_item(line_item_id)
line_item = LineItem.find(line_item_id)
line_item.status = 1
line_item.save
end
如果我从route中删除'/:id'并且从link_to中删除',id:line_item.id',它仍会生成路由。
答案 0 :(得分:1)
而不是
<%= link_to 'sell', sell_item_url, id: line_item.id %>
试
<%= link_to 'sell', sell_item_url(line_item) %>
Rails应该根据对象为你构建路径。
见这里:
http://guides.rubyonrails.org/routing.html#creating-paths-and-urls-from-objects