私は、ユーザーが買い物をする予定の日付を設定するためのフォームをデザインしようとしています。このフォームは「リスト」モデルを作成し、「日付」属性を定義します。私はこのリストモデルを次のように作成しました:date_selectモデルオブジェクトヘルパーを正しく使用するにはどうすればよいですか? (レール)
$ 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 %>
しかし、私は私のブラウザでフォームを送信すると、ページは、私が選択した日付でフォームを提出していても(私は私のリストを設定して、日付フィールドは空白のままであることを私に伝えます「日付」属性の存在を検証するためのオブジェクト)。なぜフォームが正常に日付を提出してリストを作成できないのですか?ありがとう!
1)フィールド '日付' を呼び出さないでください:私は2つのことをお勧めし
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
日付がparamsで#createに渡されているかどうか確認できますか?これは、アプリケーションテンプレート(Googleのもの)でparamsハッシュをデバッグすることで行うことができます。 #newと#createの両方にコントローラコードを含めてください。 –
上記の#createコントローラコードを投稿しました。 #新しいものは持っていない。データが作成に渡されたかどうかを確認します。 – jyli7
私は、リストモデル内で日付属性にアクセスできるようにすることを忘れていたことがわかります。ありがとう! – jyli7