在我的控制器中,我有这个:
def index
filter = []
if !params[:paid].blank?
paid = params[:paid]
filter << ["copay_received = '#{paid.to_s}'"]
end
if !params[:junk].blank?
junk = params[:junk][:effective_on]
filter << ["clients.effective_on >= '#{junk.to_s}'"]
end
@unpaids = Appointment.joins(:client).where(filter.join(" AND "))
end
基于this question的(未接受)答案。
以下是我在索引页面上用来搜索它的表单:
<%= form_tag("/", method: "get") do %>
<%= label_tag(:paid, "Search for:") %>
<%= check_box_tag(:paid) %>
<%= date_field(:junk, :effective_on) %>
<%= submit_tag("Search") %>
<% end %>
我终于让我的date_field工作了(如有效的参数所示)。
但我的问题是为什么我必须在params散列中添加一个额外的层来获取:effective_on
,而我不必做同样的事情来达到:paid
?
答案 0 :(得分:3)
date_field_tag
。
date_field
方法应该与
form_for @user do |f|
f.date_field :born_on
end