Ruby on rails 将搜索结果从一个控制器传递到另一个控制器
我有一个索引页面设置,在控制器、模型和视图(齿轮模型)中有一个带有刻面设置的太阳黑子搜索 我试图在我的应用程序主页上放置一个不同的搜索表单(不同的视图和控制器),但我希望该表单将用户重新定向到Gears模型搜索结果的索引页。现在根页面是一个没有控制器的静态页面。如何传递搜索结果并重定向视图 我可能认为这是错误的,任何帮助都是感激的 我的代码 路线Ruby on rails 将搜索结果从一个控制器传递到另一个控制器,ruby-on-rails,forms,search,sunspot,Ruby On Rails,Forms,Search,Sunspot,我有一个索引页面设置,在控制器、模型和视图(齿轮模型)中有一个带有刻面设置的太阳黑子搜索 我试图在我的应用程序主页上放置一个不同的搜索表单(不同的视图和控制器),但我希望该表单将用户重新定向到Gears模型搜索结果的索引页。现在根页面是一个没有控制器的静态页面。如何传递搜索结果并重定向视图 我可能认为这是错误的,任何帮助都是感激的 我的代码 路线 Outdoor::Application.routes.draw do resources :gears do resources :c
Outdoor::Application.routes.draw do
resources :gears do
resources :calendars, :only => [:create, :destroy, :edit]
resources :comments, :only => [:create, :destroy]
end
match '/gear', to: "gears#index"
root to: 'pages#home'
end
控制器
class GearsController < ApplicationController
respond_to :html, :json
def index
@search = Gear.solr_search do
fulltext params[:search]
facet (:category_name)
facet (:sub_category_name)
facet (:state)
facet (:city)
facet (:price)
with(:price, params[:price]) if params[:price].present?
with(:state, params[:state]) if params[:state].present?
with(:city, params[:city]) if params[:city].present?
with(:sub_category_name, params[:name]) if params[:name].present?
with(:category_name, params[:categoryname]) if params[:categoryname].present?
paginate(page: params[:page], :per_page => 15)
end
@gears = @search.results
end
end
class GearsController15)
结束
@gears=@search.results
结束
结束
主页查看表单(我还没有将其更改为使用表单助手)
谢谢你的帮助
已解决
我将主页上的表单更改为:
<%= form_tag({:controller => "gears", :action => "index"}, :method => "get", :id => "homesearch_form") do %>
<%= text_field_tag :search, params[:search], id: 'homesearch_textarea' %>
<%= submit_tag "", :name => nil, id: 'homesearch_submit' %>
<% end %>
“gears”,:action=>“index”},:method=>“get”,:id=>“homesearch\u form”)do%>
无,id:“homesearch\u提交”%>
@gears在索引操作中是实例变量,因此可用于查看文件。可以渲染常规控制器/视图/模型之外的视图
希望这对您有所帮助,请将其写在索引操作的末尾:
render '/path/to/rails/app/views/books/edit.html.erb'
据我所知,您希望在索引页上有一个搜索表单,但搜索结果不会显示在索引页上,而是显示在gears索引页上?这应该非常简单,只需在此页面中包含相同的表单,最好包含一个不可复制的部分代码: 如
:get do%>
零%>
谢谢您的帮助。我和你的评论一起工作。我正在发布有用的东西。
render '/path/to/rails/app/views/books/edit.html.erb'
<%= form_tag articles_path, :method => :get do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>