Ruby on rails 作用域路由指向错误的控制器
为了使url看起来像我已经为我的用户建立了我的路线,显示如下操作:Ruby on rails 作用域路由指向错误的控制器,ruby-on-rails,routes,Ruby On Rails,Routes,为了使url看起来像我已经为我的用户建立了我的路线,显示如下操作: scope ':username' do get '' => 'users#show', as: :user end (此处的信息是我的用户模型到参数方法) 为了防止通过该路由访问其他控制器,我在该路由之前添加了所有其他路由。除此之外,它似乎还起作用: get 'search/:query' => 'searches#show', as: :search 我的表格在哪里 = form_tag search
scope ':username' do
get '' => 'users#show', as: :user
end
(此处的信息是我的用户模型到参数方法)
为了防止通过该路由访问其他控制器,我在该路由之前添加了所有其他路由。除此之外,它似乎还起作用:
get 'search/:query' => 'searches#show', as: :search
我的表格在哪里
= form_tag search_path(query: {} || params[:query]), method: :get do
= text_field_tag :query, params[:query], class: "form-control"
= submit_tag "Search", class: "btn btn-primary"
我不知道为什么,但它总是指向用户显示动作。如何防止这种情况发生?为什么要使用范围?您可以这样做:
#config/routes.rb
get ':username', to: 'users#show', as: :user
搜索 搜索函数的问题是
method::get
当您通过HTTP发送GET
请求时,您的URL基本上如下所示:
http://domain.com/search?query=your+search+query
#config/routes.rb
post 'search/:query', to: 'searches#show', as: :search
#view
= form_tag search_path(query: {} || params[:query]), method: :post do
= text_field_tag :query, params[:query], class: "form-control"
= submit_tag "Search", class: "btn btn-primary"
您最好发送一个POST
请求,如下所示:
http://domain.com/search?query=your+search+query
#config/routes.rb
post 'search/:query', to: 'searches#show', as: :search
#view
= form_tag search_path(query: {} || params[:query]), method: :post do
= text_field_tag :query, params[:query], class: "form-control"
= submit_tag "Search", class: "btn btn-primary"
非常感谢你的解释。基本上,在我的范围内还有其他的路线,我只是以这个为例。再次感谢!没问题-希望它能帮助你!