【发布时间】:2014-02-26 21:53:11
【问题描述】:
例如:
User: localhost:3000/users/1
Message: localsthost:3000/messages/1
每个Message 都有一个user_id,所以我尝试像这样嵌套Messages:
来自用户 1 的消息 1:
localhost:3000/users/1/messages/1
我怎样才能嵌套这个?我阅读了Rails Routing,但无法完全理解。
我嵌套了资源:
路线:
devise_for :users, :path => '',
:path_names => { :sign_in => 'login', :sign_out => 'logout', :sign_up => 'register' }
# User Profiles
get 'u/:id' => 'users#show', as: :user
# Gits
resources :users do
resources :messages
end
现在路线如下所示:
new_user_message GET /users/:user_id/messages/new(.:format) messages#new
edit_user_messaget GET /users/:user_id/messages/:id/edit(.:format) messages#edit
user_message GET /users/:user_id/messages/:id(.:format) messages#show
更新了我的新消息链接:
<%= link_to "New Message", new_user_message_path%>
但我得到了错误:
No route matches {:controller=>"messages", :action=>"new", :id=>"1"} missing required keys: [:user_id]
【问题讨论】:
-
你实际上链接到the answer。如果您遇到特定问题,请务必在问题中详细说明您正在尝试、期望和实际遇到的问题。
标签: ruby-on-rails ruby-on-rails-4 routes nested