我试图弄清楚如何让用户输入多种技能"在以逗号分隔的文本区域中,然后将这些技能转换为一次一个地输入范围的数组。
同样在我的索引视图中,我列出了数组中的技能,这样当用户点击它时,它实际上会将该技能作为过滤器删除。
我遇到的问题是 1)不确定我是否正确地按照现在的方式进行数组
2)在索引视图中,当您单击一个要删除的技能时,将删除所有技能。
以我的形式
# filters on the users skills
if params[:sk].present?
@skills_list = params[:sk].split(",")
@skills_list = @skills_list.to_a
@skills_list.each do |skill|
@users = @users.by_skills_array(skill)
end
end
在我的控制器索引操作
中 scope :by_skills_array, -> (skill) { joins(:skills).distinct.where( 'skills.name LIKE ?', "%#{skill}%" ) }
在我的用户模型中,我调用范围(技能模型是独立的,但属于用户模型,这就是我进行连接的原因)。
<% if params[:sk].present? %>
<% @skills_list.each do |skill| %>
<%= link_to users_path( c: params[:c], ex: params[:ex], s: params[:s], lang: params[:lang], cert: params[:cert],
u: params[:u], relo: params[:relo], ed: params[:ed], maj: params[:maj], job: params[:job] ) , class: "btn btn-default" do %>
<i class="fa fa-times"></i> <%= "#{skill}" %>
<% end %>
<% end %>
<% end %>
在我的索引中我正在做
{{1}}
这里是输出