ぽざうねっと

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  420  : 記事  0  : コメント  9718  : トラックバック  76

ニュース

さて、今年は何を漬けようか

書庫

日記カテゴリ

Accessory

Community

Private

Rails 2.1 で、form_for 中の共通部分を部分テンプレートにできる。
# create.html.erb
<% form_for(@obj) do |f| %>
  <%= f.label :name %>
  <%= f.text_field :name %>
  <br />
  <%= f.submit "Submit" %>
<% end %>
こんなヤツの場合、_form.html.erb を作って分離することができる。
# create.html.erb
<% form_for(@obj) do |f| %>
  <%= render :partial => f %>
  <br />
  <%= f.submit "Submit" %>
<% end %>
# _form.html.erb
<%= form.label :name %>
<%= form.text_field :name %>
これはデフォルトのフォームビルダを使用している場合の話で、カスタムフォームビルダを使用している場合、少し話が変わる。
FormBuilder を継承した HogeFormBuilder を利用している場合はこんな風になる。
# create.html.erb
<% hoge_form_for(@obj) do |f| %>
  <%= render :partial => f %>
  <br />
  <%= f.submit "Submit" %>
<% end %>
# _hoge_form.html.erb
<%= hoge_form.label :name %>
<%= hoge_form.text_field :name %>
ポイントは二つ。
  • 部分テンプレートのファイル名が _hoge_form.html.erb とクラス名を考慮したファイル名が要求される。
  • 部分テンプレートの中で使用される暗黙の変数が、hoge_form とこれまたクラス名を考慮したものになる。
一つ目は知っていたものの、二つ目で少しハマった。というわけでメモ
投稿日時 : 2008年9月1日 20:33

コメント

# ルイヴィト指輪コピー 2018/09/18 9:41 cdnfud@icloud.com
おすすめ人気ブランド腕時計, 最高等級時計大量入荷!
◆N品質シリアル付きも有り 付属品完備!
☆★☆━━━━━━━━━━━━━━━━━━━☆★☆
以上 宜しくお願い致します。(^0^)
広大な客を歓迎して買います!── (*^-^*)

Post Feedback

タイトル
名前
Url:
コメント: