form_forをオープンクラス + モンキーパッチ(Module#prepend)で拡張したいと考えておりますが、うまくいきません。
オープンクラスで直接、FormHelperのdef form_forを変更するしかないのでしょうか。
その場合、superで呼べないのと、ソース汚染が高まるため、なるべくprependで拡張したいと思っております。
ご教授お願いいたします。
環境:
ruby 2.1.5p273
Rails 4.2.1
config/initializers/custom_form_builder.rb
ruby
1module CustomFormHelper 2 def form_for(record, options = {}, &block) 3 binding.pry 4 super 5 end 6end 7module ActionView 8 module Helpers 9 module FormHelper 10 prepend CustomFormHelper 11 end 12 end 13end
app/views/home/index.html.slim
ruby
1= form_for(@user) do |f| * ここで CustomFormHelper#form_forが呼ばれるはずだが、呼ばれない 2 = f.text_field :name
あなたの回答
tips
プレビュー