ruby-on-rails – ActionController :: UrlGenerationError:没有路由匹配

我从行<%= link_to“询问用户输出”,askout_user_message_path(@user),:class =>行收到无路由匹配错误“按钮”%>.

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

路线:

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时,我的路线发生了变化.

解决方法

你最好这样做:
#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视图中确定 – 您应该查看它以了解您的路由被调用(允许您相应地编写它)

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...