アプリケーションに固有の頻出処理を、自分で作成したビューヘルパーにまとめておくことで、ビューの記述を簡略化できます。
$ rails generate scaffold myModel field1:string field2:integer field3:date field4:boolean
$ rake db:migrate
config/application.rb
module MyApp
class Application < Rails::Application
...
config.action_controller.include_all_helpers = false # ←追記してください
...
end
end
"config/application.rb" への追記によって、xxx_controller.rbで使用可能なビューヘルパーは、
の二つとなっています。すべてのコントローラに共通のヘルパーかどうかで使い分けましょう。なお、二つ目のファイルはscaffoldで自動生成されたファイルのひとつです。
app/helpers/my_models_helper.rb
module MyModelsHelper
# content_tag:
# - <p>content</p>といった開始と終了のあるタグを生成します
# - doブロックまたはパラメータでコンテンツを指定します
# concat:
# - HTML内にprintします
def sample_helper_method(my_models)
content_tag(:div, class: :html_div) do
concat content_tag(:p, '"&"や"<>"はエスケープされます', class: :html_p_top)
my_models.each do |my_model|
concat content_tag(:p, my_model.attributes['field3'], class: :html_p)
end
end
end
end
app/views/my_models/index.html.erb
<%= sample_helper_method @my_models %>
出力例
<div class="html_div">
<p class="html_p_top">"&"や"<>"はエスケープされます</p>
<p class="html_p">2014-06-15</p>
<p class="html_p">2014-06-15</p>
<p class="html_p">2014-06-15</p>
</div>