对于rails 3中的命名路由,没有路由匹配

时间:2012-05-20 13:58:05

标签: ruby-on-rails ruby-on-rails-3 routing

我遇到导轨路由问题。

错误是:

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',它仍会生成路由。

1 个答案:

答案 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