Rails自定义路由与范围

时间:2018-01-07 19:00:41

标签: ruby-on-rails

我有一个范围'游戏帖子'在我的Post模型中,该模型使用标题" Games"来获取属于主题的帖子。 (Post belongs_to主题)。在我的路线中,我已经定义了路线get 'games-posts', to: 'topics#games'并且在视图中显示了那些游戏帖子的列表。在每个帖子中,我都有一个链接,可以将我带到特定的游戏帖子。 除此之外,我还有定期生成标准网址的resources :posts路线:

`/posts`
`/posts/:id`
`/posts/:id/edit`

我的问题是,当我点击games-posts页面上的特定帖子时,它会将我重定向到/posts/1(例如)。 如果它将我重定向到/games-posts/1而不是/posts/1,那就太酷了,我同样想编辑并销毁games-posts页面中的帖子。我怎么能做到这一点?是否可以定义类似

的内容

resources :games-posts

1 个答案:

答案 0 :(得分:2)

:controller选项允许您显式指定用于资源的控制器。例如:

resources :games_posts, controller: 'posts'

现在运行rake routes,您将获得以下输出,以验证它是否生成了您所需的路径。

    games_posts GET    /games_posts(.:format)                                   posts#index
                POST   /games_posts(.:format)                                   posts#create
 new_games_post GET    /games_posts/new(.:format)                               posts#new
edit_games_post GET    /games_posts/:id/edit(.:format)                          posts#edit
     games_post GET    /games_posts/:id(.:format)                               posts#show
                PATCH  /games_posts/:id(.:format)                               posts#update
                PUT    /games_posts/:id(.:format)                               posts#update
                DELETE /games_posts/:id(.:format)                               posts#destroy