Rails 充当可标记的--多上下文标记过滤器
Rails Acts as Taggable On--Multiple Context Tag filter
我正在使用 acts-as-taggable-on 来标记汽车模型。我有三个不同的标记上下文:品牌、颜色和特征。前两个品牌和颜色是在 ENV 变量中预定义的,最后一个上下文是用户生成的(自动 windows、加热座椅等)
我想做的是让我的索引页面中的汽车可以一次被多个标签过滤。因此,例如,我希望在索引页面顶部有一系列复选框,每个上下文都有一个单独的集合,用户可以在其中检查现代和红色,而汽车索引将只填充红色现代。目前,我的汽车控制器中有一条路线和一些代码,允许我按一个标签进行过滤,但我想修改它以按用户选择的任何内容进行过滤。
routes.rb
get 'tags/:tags', to: 'cars#index', as: :tag
控制器
def index
if params[:keyword].present?
@cars = Car.tagged_with(params[:keyword])
else
@cars = Car.all.order(:cached_weighted_score => :desc)
end
end
@selected_tag
是在索引页中被选为参数的标签。
控制器
def index
if params[:keyword].present?
@selected_tag = params[:keyword]
@cars = Car.tagged_with(params[:keyword])
else
@cars = Car.all.order(:cached_weighted_score => :desc)
end
end
查看
这只是原型视图,因此您必须结合自己的代码。
<% @tags.each do |tag| %>
<div>
<%= check_box_tag "keywords[]", tag.name, @selected_tag.present? ? @selected_tag.include?(tag.name) : '' %>
<%= tag.name %>
</div>
<% end %>
我希望我的描述能给出一个大概的概述。
欲了解更多信息prepopulate data in checkbox
我正在使用 acts-as-taggable-on 来标记汽车模型。我有三个不同的标记上下文:品牌、颜色和特征。前两个品牌和颜色是在 ENV 变量中预定义的,最后一个上下文是用户生成的(自动 windows、加热座椅等)
我想做的是让我的索引页面中的汽车可以一次被多个标签过滤。因此,例如,我希望在索引页面顶部有一系列复选框,每个上下文都有一个单独的集合,用户可以在其中检查现代和红色,而汽车索引将只填充红色现代。目前,我的汽车控制器中有一条路线和一些代码,允许我按一个标签进行过滤,但我想修改它以按用户选择的任何内容进行过滤。
routes.rb
get 'tags/:tags', to: 'cars#index', as: :tag
控制器
def index
if params[:keyword].present?
@cars = Car.tagged_with(params[:keyword])
else
@cars = Car.all.order(:cached_weighted_score => :desc)
end
end
@selected_tag
是在索引页中被选为参数的标签。
控制器
def index
if params[:keyword].present?
@selected_tag = params[:keyword]
@cars = Car.tagged_with(params[:keyword])
else
@cars = Car.all.order(:cached_weighted_score => :desc)
end
end
查看
这只是原型视图,因此您必须结合自己的代码。
<% @tags.each do |tag| %>
<div>
<%= check_box_tag "keywords[]", tag.name, @selected_tag.present? ? @selected_tag.include?(tag.name) : '' %>
<%= tag.name %>
</div>
<% end %>
我希望我的描述能给出一个大概的概述。 欲了解更多信息prepopulate data in checkbox