我想在我的主页 pages#home 上放置一个搜索表单。我希望能够按类别搜索我的模型。我无法找到一个解决方案,您实际上将逻辑放在与您正在搜索的模型不同的控制器上。我想知道是否有人可以帮助解决语法以及它需要去哪里。以下是我的关系:
供应商.rb
class Vendor < ActiveRecord::Base
validates :category_id, presence: true
belongs_to :category
end
类别.rb
class Category < ActiveRecord::Base
has_one :vendor
end
pages_controller.rb
def home
@vendors = Vendor.all
end
路线.rb
root 'pages#home'
我正在尝试将搜索表单放在页面布局下的 home.html.erb 上。希望有人可以帮助我如何做到这一点。这是(看似)一种简单的搜索类型,我希望不必使用 gem。
编辑:答案 对于那些搜索,这是有效的。谢谢@Vla
vendor_controller.rb
def search
@vendors = Vendor.search(params)
end
pages/home.html.erb(这是我的根'pages#home')
<%= form_tag vendors_search_path, method: :get do |f| %>
<%= text_field_tag :search, params[:search], placeholder: "Search Vendors" %>
<%= select_tag 'category', options_for_select(Category.all.map{|el| [el.name, el.id]}) %>
<%= submit_tag 'Search' %>
<% end %>
routes.rb(确保将其放在顶部附近)
get 'vendors/search'
供应商/search.html.erb
<% @vendors.each do |vendor| %>
<%= vendor.name %>
<%= vendor.phone %>
<%= vendor.email %>
<% end %>