2013-04-23 84 views
0

我正在嘗試使用Rails日期助手和窗體。但是,我只想得到一年。我從simple_form gem https://github.com/plataformatec/simple_form獲得了以下表單代碼。 discard_daydiscard_month禁止顯示月份和日期選擇框。然而,當我提交表單,我得到這個錯誤多參數如何阻止包括日期助手當前日期和月份的軌道

2 error(s) on assignment of multiparameter attributes 
"start(1i)"=>"2013", 
"start(2i)"=>"4", 
"start(3i)"=>"23", 
"end(1i)"=>"2011", 
"end(2i)"=>"4", 
"end(3i)"=>"23", 

看來Rails的只是替換當前的日期和月份因爲沒有在表單中輸入。

我想知道是否有辦法阻止Rails包含當前的日期和月份,或者我應該在控制器中處理它。眼下,創建動作看起來像這樣

def create 
    @employment = current_user.employments.build(params[:employment]) 
    if @employment.save 
    .... 

如果我不能從包括當前日期和月份停止Rails的,那麼你會在我的控制器嗎?

<%= f.input :start, as: :date, start_year: Date.today.year - 90, 
           end_year: Date.today.year, discard_day: true, discard_month: true %> 


    <%= f.input :end, as: :date, end_year: Date.today.year - 90, 
           end_year: Date.today.year, discard_day: true, discard_month: true %> 

回答

1

什麼是您的數據類型的開始和結束列?如果您只是存儲一年,則可以將它們設置爲整數類型而不是日期,並使用<%= f.input :start, collection: (Date.today.year - 90)..(Date.today.year) %>

+0

謝謝。我將它改爲整數。一個問題。你編寫它的方式,第一年要顯示的是1923年,所以用戶必須滾動很多。我試圖扭轉這個範圍,但是當我這樣做的時候,沒有幾年,當我這樣做的時候<%= f.input:start,collection:(Date.today.year)..(Date.today.year - 90)%> – BrainLikeADullPencil 2013-04-23 05:27:41

+0

嘗試在反轉之前將其轉換爲數組:<%= f.input:start,collection:((Date.today.year - 90)..(Date.today.year))。to_a。反向%>' – 2013-04-23 12:17:05

相關問題