Rails表现为Taggable

我正在使用acts-as-taggable-on来标记汽车模型。 我有三种不同的标签上下文:Make,Color&Features。 前两个Make&Color是在ENV变量中预定义的,最后一个上下文是用户生成的(自动窗口,加热座椅等)

我想要做的就是让我的索引页面汽车可以一次被多个标签过滤。 因此,例如,我希望索引页顶部的一系列复选框为每个用户可以检查Hyundai&Red的上下文单独设置,并且汽车索引将仅填充红色的Hyundais。 目前,我有一个路线和一些代码在我的汽车控制器,允许我过滤一个标签,但我想修改它,以过滤任何用户选择。

的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 %>

我希望我能对我的描述给出一个总体概述。 有关预填充复选框中的数据的更多信息

链接地址: http://www.djcxy.com/p/35945.html

上一篇: Rails Acts as Taggable On

下一篇: Acts As Taggable On