【问题标题】:Change default attribute for routes path更改路由路径的默认属性
【发布时间】:2013-11-11 03:56:41
【问题描述】:

你好,stackoverflowers!

我想创建链接但不使用默认的:id 属性,例如

article_path(@article)

生成

/articles/example-article

而不是默认的

/articles/1

奖励,我想让articles 成为默认控制器。我使用以下方法实现了这一点:

root 'articles#index'
get ':name' => 'articles#show', as: 'article'

这工作正常,但article_path 仍会生成 id 链接

【问题讨论】:

  • 这可能是一个愚蠢的问题,但是当您编写 get 行时,您是否记得也删除了 resources :articles 行?
  • 是的,没有resources :articles
  • 其实resources :articles里面有namespace :admin,我觉得应该不会有什么干扰
  • 嗯,很有趣。遗憾的是,我不确定,因为我目前无法测试任何东西。尝试在您的控制台中执行rake routes 并查看哪些路由正在/正在声明article 路径名,以及哪个是列表中的第一个。请记住,路由是按照它们在路由文件中出现的顺序执行的。
  • 只有article GET /:name(.:format) articles#show,没错哈哈

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


【解决方案1】:

试试友好的 id gem:

https://github.com/norman/friendly_id

这是一个强大的 gem,我在我的旧项目中使用过。

查看以下 railscast 以了解更多信息

http://railscasts.com/episodes/314-pretty-urls-with-friendlyid?view=asciicast

【讨论】:

  • 嘿 :) 友好的 id 是一个很棒的宝石,我了解了它及其功能,但它需要 ActiveRecord 而我没有它(我正在使用 MongoDB 和 mongoid gem)
猜你喜欢
  • 2013-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-21
  • 2013-09-03
  • 1970-01-01
相关资源
最近更新 更多