2011-09-11 74 views
1

我試圖設計一個表單,讓用戶設置他們去購物的日期。這個表單將創建一個「List」模型並定義「date」屬性。我創建了這個列表模型:如何正確使用date_select模型對象助手? (Rails)

$ rails generate model List name:string date:date user_id:integer 

現在我只想讓我的表單設置日期。這裏是我的代碼:

<%= form_for @list do |f| %> 
    <%= render 'shared/error_messages', :object => f.object %> 
    <div class="field"> 
    <%= f.date_select :date %> 
    </div> 
    <div class="actions"> 
    <%= f.submit "Submit" %> 
    </div> 
<% end %> 

但是,當我在我的瀏覽器提交表單的頁面告訴我的:日期欄仍是空白,即使我提交了一份選擇日期的形式(我已經把我的列表對象來驗證「日期」屬性的存在)。爲什麼表單無法成功提交日期並創建列表?謝謝!

​​

這裏是我的控制器代碼:

ListsController < ApplicationController 
    before_filter :authenticate, :only => [:create, :destroy] 

    def create 
    @list = current_user.lists.build(params[:list]) 
    if @list.save 
     flash[:success] = "Shopping List created!" 
     redirect_to root_path 
    else 
     render 'pages/home' 
    end 
    end 
+0

你能否確認日期是否被傳遞給參數#create?你可以這樣做,在應用程序模板(Google it)中調試params hash。請包含#new和#create的控制器代碼。 –

+0

我已經發布了上面的#create控制器代碼。沒有#新的。檢查數據是否通過創建。 – jyli7

+0

知道了!原來我忘記了在列表模型中可以訪問日期屬性。謝謝! – jyli7

回答

0

我建議兩兩件事:

1)不要叫場 '日期'。這是一個保留字,可能會產生衝突。

2)使用像calendar_date_select(https://github.com/timcharper/calendar_date_select)這樣的插件。你的用戶會喜歡它。

+0

或考慮放棄一個JQuery UI日期/時間選擇器(Trent Richardson iirc有一個,這樣做)... –