【ruby on rails】railsのHTMLヘルパーに悩む
railsでは、HTMLのinputタグ(他にもformタグやaタグ、selectタグ等)を生成するHTMLヘルパーというものがある。
でだ、inputタグを生成するヘルパーにはtext_fieldというのと、text_field_tagという2種類がある。何が違うかと、DBに結びついているフォームか、独自のフォームかで使い方が違ってくる。(という俺様認識)
まず、前者のtext_fieldタグの書式は
text_field オブジェクト名(≒モデル名/テーブル名), メソッド名(≒テーブルのカラム名), オプションと指定する。
例えば、
<%= text_field "log", "title", :size => 80 %>
と指定すると
<input id="log_title" name="log[title]" size="80" type="text" value="" />
に変換される。このとき、logオブジェクトに"ABC"が入っていれば
<input id="log_title" name="log[title]" size="80" type="text" value="ABC" />
となる。
対して、text_fieldタグの書式は
text_field_tag inputタグの名前, inputタグのvalue値, オプション
と指定し、例えば
<%= text_field_tag "title", @log.text, :size => 80 %>
と指定すると
<input id="title" name="title" size="80" type="text" value="※1" />
に変換される。※1の部分は@log.textが保持している値になる。
どちらが使いやすいかは好みによると思うが、nameが両者で異なるから注意が必要。
name="title"の場合、controllerで利用する際には、params[:title]でアクセスできるが、name="log[title]"の場合は、それではアクセスできない。
多分こう?
params[:log][:title]
(試してないのでよく分からない)
ただ、便利なのは下記のようにいちいち、パラメータを設定せずとも
@log = Log.new @log.title = params[:title] @log.text = params[:text]
こんな感じでインスタンス化できるのが便利
@log = Log.new(params[:log])
とりあえず以上を把握するのに、2時間を費やした。
rorは便利なとこが多い分、慣れるまで時間がかかる予感
↓のページにまとめられてた
http://d.hatena.ne.jp/zariganitosh/20070123/1169537414
このログへのコメント(1件)
コメント投稿フォーム
トラックバック
関連ログ
- 【ruby on rails】file_columnを使った画像ファイルのアップロード
- 【ruby on rails】acts_as_authenticatedで認証
- 【ruby on rails】rubyでRSSを生成する。
- 【ruby on rails】start_form_tag / form_tag
- 【ruby on rails】submit_tagに確認ダイアログをつける方法
- 【ruby on rails】改行コードをBRコードに変換するには
- 【ruby on rails】rake db:migrate
- 【ruby on rails】link_toヘルパーにclassを指定するには
- 【ruby on rails】image_uploadプラグイン
- rubyでのメールアドレスとURLを抽出する正規表現

>多分こう? params[:log][:title] (試してないのでよく分からない)
それで、おk