Rails form_tag возвращает только последний ввод - PullRequest
0 голосов
/ 04 апреля 2019

Я создаю специальный помощник для своей страницы с помощью помощника rails form_tag. Вот мой код:

  def horta_form(form, args = {})
    set_editable(form) unless args[:editable] == false
    identifier, send_to, classes, style = form.identifier, form.send_to, form.classes, form.style
    form_tag("/contact", method: "post") do
      text_field_tag('name')
      text_field_tag('email')
      text_area_tag('message')
      submit_tag('Send')
    end
  end

Но, на мой взгляд, он отображает только последний тег, submit_tag.

<%= horta_form(@form) %>

возвращает

<form action="/contact" accept-charset="UTF-8" method="post">
  <input name="utf8" type="hidden" value="✓">
  <input type="hidden" name="authenticity_token" value="/WLo9GzhGdD7dBk3Eh8k4Q/+jQ0r+EGqgoOXBedyl/NW6g5gBQ/R4U4gFEtXmz1xJlISHAYykZRkmDHhQJm8uQ==">
  <input type="submit" name="commit" value="Send" data-disable-with="Send">
</form>

Что я должен сделать, чтобы horta_form возвращал форму со всеми входными данными, а не только с последними?

1 Ответ

1 голос
/ 04 апреля 2019

Используйте concat, когда вам нужна вложенная структура в ваших помощниках:

def horta_form(form, args = {})
  #...
  form_tag("/contact", method: "post") do
    concat text_field_tag('name')
    concat text_field_tag('email')
    concat text_area_tag('message')
    concat submit_tag('Send')
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...