Rails 4: дополнительное поле формы
Вот так выглядит моя новая / редактируемая форма сообщения (я использую slim):
= form_for(@message) do |f|
= f.label :message
br
= f.text_area :content
br
= f.submit 'Submit'
Есть ли способ отправить дополнительное поле через форму (который не определен ни в одной модели?). Я хочу использовать его в методе создания внутри контроллера сообщений.
2 ответа
При использовании Rails 4 вы можете создать собственный аксессор в модели:
attr_accessor :content
и он не будет сохранен в базе данных.
В Rails 5 есть специальный макрос, который также может указывать атрибут для чтения.
В любом случае, убедитесь, что атрибут также находится в списке параметров из белого списка, если используете http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html
Вы можете создавать и отправлять произвольные поля, используя hidden_field
метод:
= f.hidden_field(:name)
Это предполагает, что у вас есть поле модели. Если не вы используете hidden_field_tag
:
= hidden_field_tag(:name, 'value')