Я работаю над методом внутри помощника, который создает форму для представления. Внутри этого метода есть переменная, которая хранит все html, которые будут возвращены и отображены в представлении.
def create_form
html << "<h1>Big Name</h1>"
html << form_for(ActivityComment.new, remote: true, url: "activity_comments/create") do |f|
f.text_area :comment, class: "form-control"
f.hidden_field :user_id, value: current_user.id
f.submit "Submit", class: "btn btn-success"
end
return html.html_safe
end
Теперь, когда я запускаю помощника в представлении, он отображает только кнопку отправки. Вот созданный html.
<form accept-charset="UTF-8" action="activity_comments/create" class="new_activity_comment" data-remote="true" id="new_activity_comment" method="post">
<div style="margin:0;padding:0;display:inline">
<input name="utf8" type="hidden" value="✓">
</div>
<input class="btn btn-success" name="commit" type="submit" value="Submit">
</form>
Что здесь происходит? Мое предположение состоит в том, что только последний метод f.submit
возвращается в form_for
block. Но как я могу это исправить, чтобы отображалась вся форма?
Взгляните на это: http://juliankniephoff.wordpress.com/2011/03/23/using-form_for-in-helper-methods/ Есть все, что вы ищете.