2016-02-23 4 views
1

Вот как моя новая форма/редактировать сообщение выглядит как (я использую slim):Rails 4: Дополнительные поля формы

= form_for(@message) do |f| 
    = f.label :message 
    br 
    = f.text_area :content 
    br 
    = f.submit 'Submit' 

Есть ли способ, чтобы отправить дополнительное поле через форму (которая не определена в любой модели?). Я хочу использовать его в методе «create» внутри контроллера сообщений.

+0

Это действительно поможет, если вы могли бы разместить ** ** минимальный пример, демонстрирующий проблему. – tadman

+1

Я сводил его к основной проблеме. – dominikduda

ответ

2

При использовании Rails 4 вы можете создать собственный аксессор в модели:

attr_accessor :content

и не будут сохранены в базе данных.

В Rails 5 есть определенный макрос, который может также приписывать атрибут для чтения.

В любом случае, убедитесь, что этот атрибут также в списке параметров белого списка при использовании http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html

2

Вы можете создавать и отправлять произвольные поля с помощью метода hidden_field:

= f.hidden_field(:name) 

Это предполагает, что вы есть поле модели. Если вы не используете hidden_field_tag:

= hidden_field_tag(:name, 'value') 

 Смежные вопросы

  • Нет связанных вопросов^_^