【发布时间】:2014-02-28 19:41:13
【问题描述】:
我收到来自<%= link_to "Ask User Out", askout_user_message_path(@user), :class => "button" %> 行的无路由匹配错误。
这在我添加 gem 之前可以工作,但现在它停止工作了。我尝试在收藏下移动,但我不走运,因为它曾经是这样的。
路线:
resources :users do |user|
resources :messages do
member do
post :new
get 'askout', action: 'askout'
end
end
collection do
get :trashbin
post :empty_trash
end
end
resources :conversations do
member do
post :reply
post :trash
post :untrash
end
end
旧路线:
resources :users do |user|
resources :messages do
collection do
post 'delete_multiple'
get 'askout', action: 'askout'
get 'reply', action: 'reply'
end
end
end
添加邮箱 gem 后,我的路线发生了变化。
【问题讨论】:
-
这个嵌套路由需要一个消息 id,因为您在资源成员中定义了 askout :messages,使用这样的帮助器:
askout_user_message_path(@user, message)其中 message 是使用 params[:id] 找到的消息--- 如果您不希望它需要消息 id,请将其放在集合块中并使用askout_user_messages_path(@user)(消息上的复数)
标签: ruby-on-rails