ruby-on-rails - Rails 路线 : GET method redirecting to show method

标签 ruby-on-rails ruby-on-rails-4 module routes

我有简单的 Controller 和路由文件。 在我的路线和 Controller 中,我创建了一个模块。我写了一个简单的方法来重定向我的节目。我不确定为什么。

Controller

  module Seller
    class CampaignsController < Seller::BaseController

      before_action :confirm_logged_in

      def viewAllCampaigns
       @campaigns = Campaign.all

      end

      def show
      end

    end

  end

路线文件

 scope module: 'seller' do
   #namespace :power do
   resources :dashboard, only: [:index]
   resources :sessions, only: [:create, :destroy]
   resources :campaigns, only: [:index, :create, :show, :update, :destroy]   
   get 'viewAllCampaigns' => 'campaigns#viewAllCampaigns'   
 end

输出

Started GET "/campaigns/viewAllCampaigns" for 127.0.0.1 at 2015-10-12 17:39:43 +0500
  Processing by Seller::CampaignsController#show as HTML
  Parameters: {"id"=>"viewAllCampaigns"}
  Rendered seller/campaigns/show.html.erb (0.1ms)

我正在点击 http://localhost:3000/campaigns/viewAllCampaigns在浏览器中。

最佳答案

理想情况下,您的路由应该这样定义。

resources :campaigns, only: [:index, :create, :show, :update, :destroy] do  
   get 'viewAllCampaigns', on: :collection   
end

routes.rb 文件的第一个注释是 优先级基于创建顺序:最先创建 -> 最高优先级。 这就是您的路线的原因重定向到 show。 Rails 将此 url 视为 campain/:id

关于ruby-on-rails - Rails 路线 : GET method redirecting to show method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33081621/

相关文章:

ruby - 验证包含值时出现验证错误 :Rails

具有多个登录源的 Drupal 7?

python - ImportError:无法导入名称 get_column_letter

python - 在 python 中运行特定的批处理命令

ruby-on-rails - 如何计算 Ruby on Rails 中 bool 列的总和

ruby-on-rails - 如何在 RoR 中实现通知系统?

ruby-on-rails - 在 ActiveJob 中排队多个作业

css - 我如何创建一个 gem,它将从模板生成一个 css 文件

mysql - 我似乎无法让 rails server 运行

ruby-on-rails - 混淆实例变量和局部变量