【问题标题】:Rails controller path not found找不到 Rails 控制器路径
【发布时间】:2013-02-27 02:07:14
【问题描述】:

我认为我的表单标签:

<%= form_tag view_all_rater_path, :method => 'get' do %>
  <p>
    <%= text_field_tag :search, params[:search], :placeholder => 'Search by Set # or date' %></br>
    <%= submit_tag "Search", :class => "btn btn-link", :name => nil %>
  </p>
<% end %>

我的控制器操作:

  def view_all
    if params[:search]
      @ratings = RatingSet.find(:all, :conditions => ['id = ? or rating_date like ?', "%#{params[:search]}%"])
    else
      @ratings = RatingSet.all
    end
  end

我的路线:

  resources :rater, :only => [:index] do
    collection do
      get :rater_csv
      get :view_all
    end
  end

当我导航到 /rater/view_all 时,我得到一个 No route matches {:action=&gt;"view_all", :controller=&gt;"rater"}

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2


    【解决方案1】:

    这里的问题将是您的路线定义中的单数与复数。

    您的路线为rake routes 提供以下输出:

    rater_csv_rater_index GET    /rater/rater_csv(.:format)                                  rater#rater_csv
     view_all_rater_index GET    /rater/view_all(.:format)                                   rater#view_all
              rater_index GET    /rater(.:format)                                            rater#index
    

    因为您已经使用单数名称 (rater) 定义了复数资源 (resources)。

    如果您将其设为单一资源 (resource),路线将自行清理。

    永远记得使用rake routes

    【讨论】:

    • 当我将路由更改为单个资源后运行 rake 路由时,我得到:rater_csv_rater GET /rater/rater_csv(.:format) raters#rater_csv view_all_rater GET /rater/view_all(.:format) raters#view_all
    • 这与您在视图中使用的路线相匹配。
    【解决方案2】:

    您是否尝试在控制台上“rake routes”以查看您的路由结构?

    【讨论】:

      【解决方案3】:

      2 各位:确保您拨打正确的请求,GETPOST 根据需要。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-06
        • 2014-01-23
        • 1970-01-01
        • 1970-01-01
        • 2016-11-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多