0

私のコントローラーには、これがあります:

  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

これは、この質問に対する (受け入れられない) 回答に基づいています。

インデックスページで検索に使用したフォームは次のとおりです。

<%= 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が機能するようになりました(effective_onパラメーターで示されているように)。

しかし、私の質問は、:effective_on到達するために同じことをする必要がないのに、取得するために params ハッシュに追加のレイヤーを下に移動する必要があるのはなぜ:paidですか?

4

1 に答える 1

3

あなたは間違った方法を使用しています。である必要がありますdate_field_tag

メソッドは、date_field次のようなオブジェクト形式で使用されることになっています

form_for @user do |f|
  f.date_field :born_on
end
于 2013-10-17T17:04:07.897 に答える