Helperメソッド内で form_tag を使うときの注意点
form_tag
を使えばブロック内の全体を返してくれるかと思ったのですが、そうではないらしく最終行だけ返ってきてしまいます。
具体例
つまり
def generate_form(path) form_tag(path) do input_tag submit_tag end end
だとフォームそのものと最終行のsubmit_tag
だけが表示されてその他の入力フィールドが一切表示されません。
対策
なので以下のように毎行String
を保存しておきましょう。何でこんな仕様になってるんだろう…?
def generate_form(path) form_tag(path) do str = input_tag str += submit_tag str end end
参考
[ruby on rails – How do I use form_tag from within a helper? – Stack Overflow][1]