Вставить форму, сгенерированную form_for в переменную

0

Я работаю над методом внутри помощника, который создает форму для представления. Внутри этого метода есть переменная, которая хранит все 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. Но как я могу это исправить, чтобы отображалась вся форма?

  • 0
    Попробуйте не иметь "HTML <<"
  • 0
    Вы можете объяснить, почему?
Теги:
form-for
ruby-on-rails-4

1 ответ

1
Лучший ответ

Взгляните на это: http://juliankniephoff.wordpress.com/2011/03/23/using-form_for-in-helper-methods/ Есть все, что вы ищете.

  • 0
    Благодарю. Это удивительно сработало, я боялся, что код будет устаревшим.
  • 0
    Я проверял это раньше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню