2012-09-29 9 views
7

Mam pomocnika, którego używam do generowania formularza. Parametry używane do generowania pól formularza są przekazywane do helpera. Nie mogę wymyślić, jak użyć bloku poza szablonem.Jak używać form_tag z poziomu pomocnika?

Na przykład:

def generate_form(path, fields) 
    form_tag(path, method: :get) do 
     # what do I do in here? 
    end 
end 

Kiedy renderowanie partials wewnątrz bloku, nic nie pojawia się na stronie internetowej renderowane. Jeśli połączę razem kilka tagów (field_tag, text_field_tag, itp.), Na stronie pojawi się surowy html.

Używam Rails 3.1.0 Element

Odpowiedz

11

Szyny pomocnicy powrotu struny, więc można zrobić:

def generate_form(path, fields) 
    s = form_tag(path, method: :get) do 
    p = input_tag 
    p << submit_tag #(everything will be wrapped in form tag) 
    p #returns p from block 
    end 
    s.html_safe #returns s and avoids html escaping 
end 
+0

byłem nieświadomy bezpiecznych buforów. Co się działo, robiłem zastrzyk z łańcuchem jako wartością początkową: fields.inject (''). Zmieniłem go na fields.inject (''. Html_safe) i teraz działa. – mushroom

Powiązane problemy