Rails:复杂的路由

时间:2014-01-24 03:55:45

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

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

我希望在root下可以使用一个模型,而不会破坏其他模型。自然等级。这在Rails中甚至可能吗?

更新

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

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

2 个答案:

答案 0 :(得分:2)

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

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

对于帖子,它将是

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

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

答案 1 :(得分:0)

您可能需要使用

的嵌套路线
 resources :authors do 
  resources :posts
 end

假设您正确地完成了模型关联,这将成为路由的开始。要获取domain.com/author_name/32,您需要稍微自定义它。也许

https://github.com/norman/friendly_id

可以帮到你。