【问题标题】:Rails: complicated routingRails:复杂的路由
【发布时间】:2014-01-24 03:55:45
【问题描述】:

假设我有一个包含五个模型的标准 Rails 应用程序:TopicPostAuthorCommentCommentAuthor。我希望Posts 可用,如domain.com/:author_name/32,我希望Topics 可用,如domain.com/12

这就像我想要一个模型在根目录下可用,而不会破坏其他模型的自然层次结构。这在 Rails 中是否可行?

更新

这是因为我在加载资源时不断收到这样的错误:

{"controller"=>"topic", "action"=>"show", "post"=>"assets", "id"=>"social-icons", "format"=>"css"}

【问题讨论】:

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


【解决方案1】:

对于主题,假设你的控制器是主题控制器

get '/:id', to: 'topics#show'

对于帖子,它会是

get '/:author_name/:id', to: 'posts#show'

另外,请阅读指南:http://guides.rubyonrails.org/routing.html

【讨论】:

  • author_name 不是参数吗?
  • 是的,我的意思是 author_name 作为参数。
【解决方案2】:

你可能需要一个嵌套路由,

 resources :authors do 
  resources :posts
 end

假设您正确地进行了模型关联,这将是您路由的开始。要获取 domain.com/author_name/32,您需要对其进行一些自定义。也许

https://github.com/norman/friendly_id

可以帮助你。

【讨论】:

    猜你喜欢
    • 2021-07-04
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 2013-11-20
    • 2021-11-10
    • 2010-12-05
    相关资源
    最近更新 更多