如何在ruby中搜索范围复选框
我有这样的形式
<% VenueCategory.all.each do |c| %>
<%= check_box_tag("venue_categories[]", c.id)%>
<%= c.name%>
<% end %>`
如果选择了多个选项,我想搜索会场类别。如何使用范围
我试过这样的 在我的property.rb
模型中
scope :venue_category, -> (venue_categories_id) { where venue_category_ids: venue_categories }
控制器:
@properties = Property.where(:status=>'1')
@properties = @properties.venue_categories(params[:venue_categories]) if params[:venue_categories].present?
model venuecategory.rb
class VenueCategory < ActiveRecord::Base
belongs_to :property
end
property.rb
class Property < ActiveRecord::Base
has_and_belongs_to_many :venue_categories
end
我尝试这个时遇到错误。
我不知道如何使用范围进行多个复选框选项搜索。如果有人知道,请帮助我。
任何帮助都很明显。
答案 0 :(得分:2)
将范围视为名为venue_categories
的函数,该函数接受参数 - venue_categories
- 一组场地类别ID。
scope :venue_categories, -> (venue_categories) { where(id: venue_categories) }
此处id
是要匹配的字段名称。
<强>控制器强>
@properties = Property.where(status: '1')
@properties = @properties.venue_categories(params[:venue_categories]) if params[:venue_categories].present?
这应该有用。