所以我的rails路由有一个奇怪的问题,当我转到apps索引路径时它很好,但如果索引路径有任何路由它不起作用。我有一个看起来像这样的控制器:
class ThingsController < ApplicationController
def index
@things = Thing.search params[:q]
end
def show
@thing = Thing.find params[:id]
end
end
在我看来非常通用,搜索方法将:q
参数作为输入,这是我的路线:
MyApp::Application.routes.draw do
root :to => "things#index"
resources :things
end
有关为何发生这种情况的任何想法?
答案 0 :(得分:1)
您可以添加将“q”传递给控制器的自定义路线:
resources :things
map.connect '/things/:q', :controller => :things, :q => :q
root :to => "things#index"
它将首先匹配顶部,然后如果它不存在则向下移动。然后你可以调用params [:q]没问题。