プロが教える店舗&オフィスのセキュリティ対策術

ruby on rails において、form_forヘルパーを用いてデータを取得したいのですが、ユーザー入力だけでなく、システムから計算したデータも入力したいのですが、やりかたがわかりません。
具体的に、blogモデルにpram1,pram2,pram3とあった場合、pram1はユーザーが入力し、pram2には、システムで計算した一週間後の日付を入れて置きたい場合、

controllerで、
@blog = Blog.new

blog.save

viewで
<%= form_for(@blog) do |f|%>
~省略~
<%= submit %>

などと、書くと思いますが、どのタイミングで、代入すればよいのですか?
できれば、サンプルコードで教えてください。

A 回答 (2件)

やはりケースバイケースですが、初心者さんのようなので、一番代表的な方法はattrubutesメソッドにhashで引き渡してしまう方法



hash = { :title => "title" }
@blog = Blog.new
@blog.attributes = hash

<%= form_for(@blog) do |f|%>
<%=f.text_field :title, value:@blog.title %>
<% end %>

あとはnewメソッドにハッシュで引き渡してあげるとか
Blog.new( title:"title" )
JavaScriptなどもありますが、高度な方法は聞かれていないようなので
上記の例で大丈夫でしょう
    • good
    • 0
この回答へのお礼

わかりやすい配慮ありがとうございます。自分でも考えてみたのですが、form_forにこだわらず、form_tagで、取得した後、saveする直前で挿入するなど、方法はいっぱいありそうですね。そんな中、状況にこだわらず、わかりやすい例を挙げていただき、暖かさを感じました。感謝します

お礼日時:2012/06/23 17:27

ケースバイケースとしか。


質問のケースだと、pram1 から pram2 はいつでも計算可能なので、blog モデルに pram2 というカラム自体が不要だと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!