2012-03-27 8 views
2

Railsにはform_forメソッドがあり、生成されたフォームタグ内に存在するコンテンツを含む& procを取得します。例えば、HAML中:Ruby/Rails:プロシージャに追加?

= form_for @my_model do |f| 
    = f.label :demo_field 
    = f.text_field :demo_field 

フォームは、質問は、私が何かを付加行くのですか、である

= form_for @my_model do |f| 
    %h1 Demo Of Breaking Into A Proc 
    = f.label :demo_field 
    = f.text_Field :demo_field 

としてレンダリングされるように、私はかなりその& PROCブロックに何かを付加したいのですがproc引数に?私が呼んでいる方法は次のとおりです。

module ActionView::Helpers::FormHelper 
    alias_method :original_form_for, :form_for 



    def form_for(record, options = {}, &proc) 
    # Prepend to the proc block here 
    # ??? 

    original_form_for(record, options, &proc) 
    end 

エンド

誰がいることを置き換えることができれば、「#???」解決策を提示する(あるいはこれを間違った方法で行っているのであれば別の方法を提案する)、私は本当に感謝しています。

答えて

2
def form_for(record, options = {}, &proc) 
    new_proc = proc do |*args, &block| 
     "some more html" + proc.call(*args, &block) 
    end 
    original_form_for(record, options, &new_proc) 
end 

Procは変更できません。

0
- my_form = lambda do |*args, &proc| 
    %h2 My form header 
    - form_for *args, &proc 

- my_form.call(:model_name) do |f| 
    = f.text_field :column_name 
関連する問題