嗨,也许这是一个傻瓜问题,但我真的试着找不到任何相关的信息,(也许因为我不知道从哪里开始看)...
我需要构建一个带选项的选择框,以便用户可以通过我所拥有的candidate.poisition值“过滤”。此时视图有此代码..
我正在使用:params,将它们发布到URL中(我总是做php,我在做导轨导致我的任务现在是插入一个设计,我实现了一切,只是缺少一个选择框过滤器)
无论如何..这里是代码..这很简单
<% @candidates.each do |candidate| %>
<% if (candidate.active == true) && (candidate.position.present?) %>
All the html code with info.. like
<%= candidate.name %> : <%= candidate.position? ? t('generales.'+candidate.position) : t('activerecord.models.elite') %>
<% end %>
<% end %>
我怎么能做到这一点,因为我真的是Rails中的菜鸟,我是PHP上的普通用户,甚至没有真正好的jaja,请,我希望有人可以帮我这个。
我可以使用这样的内容:How to do a LIKE query in Arel and Rails?
赞candidates.where("position like '%?%'", params[:query]).to_sql
另外,如何在PHP中构建Post,不知道如何更改要过滤的位置。
模型Candidate.rb里面有这个:S
class Candidate < ActiveRecord::Base
end
答案 0 :(得分:1)
基本上你是对的。这是改进的代码:
<% @candidates.each do |candidate| %>
<% if candidate.active && candidate.position.present? %>
<%= candidate.name %> : <%= t("generales.#{candidate.position}") %>
<% end %>
<% end %>
评论中的每个请求更新:
在控制器中使用这样的代码:
if params[:position] == 'red'
@candidates = @candidates.where(position: 'red')
elsif params[:position] == 'blue'
@candidates = @candidates.where(position: 'blue')
else
@candidates = Candidate.all
end
并构建将传递参数position
的html表单。