Rails,为每个用户对话创建特定路由

时间:2016-02-23 16:14:03

标签: ruby-on-rails-4 controller routes nested-resources nested-routes

我试图在我的简单应用中为我的用户创建一个简单的消息传递功能。

到目前为止,我已经创建了一个消息控制器/模型,用户可以在其中简单地来回发送消息。用户has_many:消息,消息属于用户。

我的消息模型非常简单。它具有发件人ID,接收者ID和邮件正文。

在我的消息控制器/视图中,我目前有索引操作,其中显示一条简单的行,显示用户有新消息。我想添加用户可以点击此行的功能,这会将他们带到另一个显示页面,显示这两个人之间的整个对话。如何添加此特定路线和相应的操作?

例如:

{root} / users / johnsmith / messages =显示john的消息(这已经有效了) {root} / users / johnsmith / messages / sallyfields =显示john和sally之间的对话

如果有人可以提供帮助,那就太棒了!谢谢!

1 个答案:

答案 0 :(得分:0)

这两条路线最好用以下代表:

get 'users/:user_id/messages'     => 'messages#index'
get 'users/:user_id/messages/:id' => 'messages#show'

然而,这也可以用嵌套路线表示,以获得更加宁静的效果:

resources :users do
  resources :messages
end
相关问题