0

我想要这样的路线:

get '/posts/new'           => 'posts#new'
get '/:username/posts/:id' => 'posts#show'
get '/:username/posts'     => 'posts#index'

可通过以下助手访问:

new_post_path    #=> new   -
post_path(post)  #=> show  - :username implied from post
posts_path       #=> index - :username implied from session
posts_path(user) #=> index - :username explicit

我想用足智多谋的语义来做到这一点,而不是手动指定每条路线。另外我不确定如何使 url 助手变得聪明。

想法?

4

1 回答 1

0

我假设您想要的是嵌套路由。这应该让你更接近你正在寻找的东西。

在您的 routes.rb 文件中:

resources :users do
  resoures :posts
end

这将使路径如下:

/users
/users/:user_id
/users/:user_id/posts
/users/:user_id/posts/:id

然后你可以从那里调整你的路线,以便/posts/new指向你的帖子控制器,如下所示:

(未经测试,不确定这是 100% 正确,所以请有人加入)

resources :users do
  resoures :posts do
    match "/posts/new", :to => "posts#new"
  end
end
于 2013-04-04T20:22:37.327 回答