2013-10-17 89 views
0

在我的控制,我有這樣的:爲什麼我的date_field參數嵌套在標籤名稱中?

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(如圖所示與effective_on參數)。

但我的問題是爲什麼我必須去一個額外的層進入params哈希得到:effective_on,而我不必做同樣的事情達到:paid

+0

對象形式使用'DATE_FIELD()'在Ruby中新幫手on Rails的4.0,什麼軌的版本您使用的? –

+0

沒錯。 4.0.0 – Ramy

回答

2

您正在使用錯誤的方法。它應該是date_field_tag

date_field方法應該是與像

form_for @user do |f| 
    f.date_field :born_on 
end 
+0

嗯....這是超級有用(所以+1),但沒有完全回答我的問題。 – Ramy

+0

那麼哪個部分丟失? – phoet

+0

爲什麼date_field的工作方式呢?從某種意義上說,如果它通過在散列中更深入一層來工作,那麼它究竟是錯誤的?我做了什麼不同的事情:http://guides.rubyonrails.org/form_helpers.html#other-helpers-of-interest? – Ramy

相關問題