- 更新日: 2015年8月24日
- Rails
View Helperの動作をrails consoleのpryで確認
Rails 環境で pry を起動して、rails console 上で helper メソッドの動作を確認する方法です。helper インスタンスをレシーバーに指定してやることで、console で helper メソッドの出力を確認できる。
1 2 3 |
$ bundle exec rails c |
もしくは
1 2 3 |
$ bundle exec rails console |
で、まずは Rails の console 画面(pry)を起動します。
— 環境 —
Rails 4.1.6
helper インスタンスを明示的に指定する
自作した helper メソッドの動作を console で確認する例です。
app/helpers/posts_helper.rb
1 2 3 4 5 |
module PostsHelper def pretty_print(post) # ... end end |
1 2 3 4 5 6 |
$ bundle exec rails c pry(main)> post = Post.create( title: "hello", content: "This is the first post.") pry(main)> helper.pretty_print(post) # => output of pretty_print helper |
通常の View ですと、レシーバ指定なしで以下のように呼び出すけど、Rails console の場合は明示的に helper インスタンスをレシーバに指定します。
1 |
<%= pretty_print(post) %> |
組み込みのヘルパーの動作も確認できる。昨日の Railsでoptgroup付きプルダウンメニューを配列・ハッシュから作成 | EasyRamble で使った、select_tag と grouped_options_for_select のヘルパー動作を console から確認。
1 2 3 |
pry(main)> helper.select_tag "web_programming_books", helper.grouped_options_for_select(Book::SELECT_OPTIONS) |
さっと console から helper の動作を確認したい時は便利です。
helper インスタンスとは?
気になったのでちょっと調べた。Ruby のことは Ruby に聞け…っと。
1 2 3 4 |
pry(main)> helper.class => ActionView::Base |
ということで、helper インスタンスは ActionView::Base クラスのインスタンスであることが分かりました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
pry(main)> helper.methods.grep(/\Atext/) => [:text_field, :text_area, :text_field_tag, :text_area_tag] pry(main)> helper.methods.grep(/\Aselect/) => [:select, :select_tag, :select_datetime, :select_date, :select_time, :select_second, :select_minute, :select_hour, :select_day, :select_month, :select_year] |
見慣れた View 用のヘルパーメソッドが見つかりました。View では helper インスタンスの明示的なレシーバ指定が省略できるのでしょうね。
- Rails の関連記事
- RailsでMySQLパーティショニングのマイグレーション
- Rails ActiveRecordでdatetime型カラムのGROUP BY集計にタイムゾーンを考慮する
- RailsプラグインGemの作成方法、RSpecテストまで含めたrails pluginの作り方
- RailsでAMPに対応するgemをリリースしました
- Railsでrequest.urlとrequest.original_urlの違い
- Railsでwheneverによるcronバッチ処理
- Google AnalyticsのRails Turbolinks対応
- Railsアプリにソーシャル・シェアボタンを簡単設置
- Rails監視ツール用にErrbitをHerokuで運用
- Facebook APIバージョンのアップグレード手順(Rails OmniAuth)
Leave Your Message!