ransack gem:在下拉列表中过滤年份和月份
ransack gem: Filter for years and months in dropdown
我用的是Rails5.1和现在的版本gem.
我有一个显示职位的 "statistics" 页面,我想使用两个下拉 select 字段实现筛选功能,1) 年 (2011-2018) 和 2) 个月(一月至十二月)。我怎样才能做到这一点?
我在想
# in statistics index view
<%= search_form_for @search do |f| %>
<%= f.grouping_fields(f.object.new_grouping) do |g| %>
<%= g.condition_fields(g.object.new_condition) do |c| %>
<%= # here the years dropdown list%>
<%= # here the months dropdown list%>
<% end %>
<% end %>
<% end %>
<%= f.submit "filter" %>
<% end %>
它应该是什么样子才正确?
我不确定是否可以通过搜查来完成,您可以选择使用简单的形式来完成:- 就像这样:-
<%= form_tag jobs_path, method: :get%>
<%= select_year(Date.today, {:prompt => "Year",:start_year => DateTime.now.year,:end_year => DateTime.now.year - 7, prefix: 'start_date'},{:field_name => 'year', :id => 'start-year'}) %>
<%= select_month(Date.today, {:prompt => "month",use_short_month: true, prefix: 'start_date'},{:field_name => 'month', :id => 'start-month'}) %>
<%= submit_tag("Search Job", :id=>"button", :class=>"Test", :name=>"submit") %>
<%end%>
并在您的索引操作中
def index
if params[:year].present? or params[:month].present?
#@jobs = Job.where("colum BETWEEN ? AND ?", ...)
#@jobs = your_own_query_for_filter
else
@jobs = Job.all
end
end
我没有写好代码,这只是一个例子,你也可以用这种方式来做。希望对你有帮助。
我用的是Rails5.1和现在的版本gem.
我有一个显示职位的 "statistics" 页面,我想使用两个下拉 select 字段实现筛选功能,1) 年 (2011-2018) 和 2) 个月(一月至十二月)。我怎样才能做到这一点?
我在想
# in statistics index view
<%= search_form_for @search do |f| %>
<%= f.grouping_fields(f.object.new_grouping) do |g| %>
<%= g.condition_fields(g.object.new_condition) do |c| %>
<%= # here the years dropdown list%>
<%= # here the months dropdown list%>
<% end %>
<% end %>
<% end %>
<%= f.submit "filter" %>
<% end %>
它应该是什么样子才正确?
我不确定是否可以通过搜查来完成,您可以选择使用简单的形式来完成:- 就像这样:-
<%= form_tag jobs_path, method: :get%>
<%= select_year(Date.today, {:prompt => "Year",:start_year => DateTime.now.year,:end_year => DateTime.now.year - 7, prefix: 'start_date'},{:field_name => 'year', :id => 'start-year'}) %>
<%= select_month(Date.today, {:prompt => "month",use_short_month: true, prefix: 'start_date'},{:field_name => 'month', :id => 'start-month'}) %>
<%= submit_tag("Search Job", :id=>"button", :class=>"Test", :name=>"submit") %>
<%end%>
并在您的索引操作中
def index
if params[:year].present? or params[:month].present?
#@jobs = Job.where("colum BETWEEN ? AND ?", ...)
#@jobs = your_own_query_for_filter
else
@jobs = Job.all
end
end
我没有写好代码,这只是一个例子,你也可以用这种方式来做。希望对你有帮助。