Ruby on rails 在Rails 3中路由嵌套资源

Ruby on rails 在Rails 3中路由嵌套资源,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,在我的应用程序中,用户有消息 resources :users do resources :messages end 用户可以通过一个漂亮的url访问他们的个人资料,比如/albert match ':username' => 'users#show', :as => 'username' 但不是他们的信息 user_message_path(@user, 1) 返回/users/1/messages/1。如何让它返回/albert/messages/1?在您的路线中添加

在我的应用程序中,用户有消息

resources :users do
   resources :messages
end
用户可以通过一个漂亮的url访问他们的个人资料,比如/albert

match ':username' => 'users#show', :as => 'username'
但不是他们的信息

user_message_path(@user, 1)
返回/users/1/messages/1。如何让它返回/albert/messages/1?

在您的路线中添加:

get ':username/messages/:id' => 'messages#show', :as => 'username_message'
要访问,请在路由中使用
username\u message\u path

添加:

get ':username/messages/:id' => 'messages#show', :as => 'username_message'

要访问,请使用
username\u message\u path

谢谢,但是有更通用的方法吗?必须为每个嵌套资源添加该行,这将成为cubersome。我鼓励您查看资源方法的定义:(单击ShowSource)。如果它提供的模式不符合您的喜好,您可以根据您的应用程序创建自己的定制方法。谢谢,但是有没有更通用的方法?必须为每个嵌套资源添加该行,这将成为cubersome。我鼓励您查看资源方法的定义:(单击ShowSource)。如果它提供的模式不符合您的喜好,您可以创建自己的定制方法,以适合您的应用程序。