2009-09-07 2 views
1

ヘルパーのポイントをレールで見逃しているのかどうかはわかりませんが、私はdate()ヘルパーを使用しました。変数が返されます。日付()変数にアクセスする日付ヘルパーからレールで送信

私はコントローラに返さ変数にアクセスするにはどうすればよいHERESにヘルパーコード

<%=date_select("game", "release_date", :order => [:day, :month, :year])%> 

おかげ

答えて

5

date_selectヘルパーは、Railsは、マルチパラメータの属性を呼ぶものを使用しています。つまり、ヘルパーによって作成された日、月、年の3つのドロップダウンに、release_date属性の値が分割されます。 date_select名前あなたのコントローラにあなたが行うことができるような規則を次の3つのドロップダウン:

@game = Game.new(params[:game]) 

と新しいゲームのrelease_date属性は、選択した日付が設定されます。

または

@game.update_attributes(params[:game]) 

既存のレコードを更新します。

あなたがのparamsを検査したり、ログファイルを見ると、あなたが3つの個々のコンポーネントが表示されます。あなたはこれらの個々の要素にアクセスすることができなくなり

params["game"]["release_date(1i)"] # the year 
params["game"]["release_date(2i)"] # the month 
params["game"]["release_date(3i)"] # the day 

は直接それは良いアイデアのように見えるしていません。 date_selectヘルパーは、実際には、新しいオブジェクトの作成または属性の更新の際に使用されるActiveRecordのattributes=セッターと組み合わせて使用​​するように設計されています。

+0

ゲームモデルには、「release_date」というdate()フィールドがあります。 Game.create(:name => name、:release_date => params [:release_date])を実行するのは正しいでしょうか? – dotty

+0

フォームが標準ヘルパーを使用して作成されている場合、名前、release_dateなどはparams [:game] [:name]などのようにネストされます。params [:game] [:release_date] 。しかし、あなたはGame.create(params [:game])を行うことができます。 createは、.newに続けて保存を行うのとまったく同じです。 – mikej

関連する問題