事前準備
$ 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で使用可能なビューヘルパーは、
- app/helpers/application_helper.rb
- app/helpers/xxx_helper.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>
0
フルスタックエンジニア。TypeScriptとRustに夢中です。
記事の執筆者にステッカーを贈る
有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。
さらに詳しく →Feedbacks
ログインするとコメントを投稿できます。




