ActionController :: UrlGenerationError:没有路由匹配

时间:2014-02-28 19:41:14

标签: ruby-on-rails

我从第<%= link_to "Ask User Out", askout_user_message_path(@user), :class => "button" %>行收到无路由匹配错误。

这在我添加宝石之前曾经工作但是现在它停止了工作。我试着在收藏中移动,但我没有运气,因为那是以前的地方。

路线:

 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

我添加了邮箱宝石,我的路线发生了变化。

1 个答案:

答案 0 :(得分:6)

你最好这样做:

   #config/routes.rb
   resources :users do
     resources :messages do
       member do
         post :new
         get :askout
       end
     end
     collection do
         get :trashbin
         post :empty_trash
      end
   end

这会给你:

users/1/messages/5/askout

我认为你想要的是什么:

   #config/routes.rb
   resources :users do
     resources :messages do
       post :new
       collection do
         get :askout
       end
     end
     collection do
         get :trashbin
         post :empty_trash
      end
   end

这会给你:

users/2/messages/askout

路径助手将在rake routes视图中确定 - 您应该查看它以了解您的路线被调用(允许您相应地编写)