1

我对非资源路由的帮助程序 url 和路径帮助程序有疑问,

有一个模型Item,除其他属性外,还有一个sku属性

所以默认路由与

resources :items

创建默认索引路由

item GET        /items/:id(.:format)                              items#show

但我想覆盖该路由以匹配以下网址:

/sku/:sku/id/:id

而不是默认网址:

/items/:id

所以我创建了以下路由并将其放在上面resources :items以首先匹配:

get "sku/:sku/id/:id" => "items#show", as: "item"

如果我去www.example.com/sku/2342/id/8484它会正常工作,它会向我显示正确的项目。

但是,我的问题是如果我想使用item_pathoritem_url助手将对象传递给他们。

/sku/2342/id/8484我没有得到所需的路径,而是得到了一个应用了两次的项目 id 的路径/sku/8484/id/8484

我在谷歌和 StackOverflow 中搜索了几分钟,但我找不到答案,我已经阅读了 Rails 路由文档但仍然没有成功,希望有人能帮助我,谢谢。

4

1 回答 1

0

你在做类似的事情item_path(item, item)。我不确定这会奏效。如果您传入实际对象,它会抓取该id字段。

你试过了item_path(item.sku, item)吗?

于 2013-10-11T05:11:44.393 回答