【问题标题】:non resourceful routes with model attributes and url helpers具有模型属性和 url 助手的非资源路由
【发布时间】:2013-10-19 01:25:13
【问题描述】:

我对非资源路由的帮助器 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_path 或 item_url 助手将对象传递给他们。

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 嘿,谢谢!使用 item_url(@item.sku, @item) 工作,现在我得到了我想要的 URL
    猜你喜欢
    • 2015-06-30
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 2011-12-21
    • 2018-01-16
    • 1970-01-01
    相关资源
    最近更新 更多