#ruby-on-rails #devise
#ruby-on-rails #разработка
Вопрос:
Существует несколько ответов о том, как добавить поле в форму регистрации в Rails 4, если поле также является новым свойством пользовательской модели. Но как мне добавить поле в форму регистрации, которое не является частью пользовательской модели? В моем конкретном примере я хотел бы добавить поле названия компании в форму регистрации, которое затем будет использоваться для создания модели компании до создания пользовательской модели. Как бы я это сделал?
Комментарии:
1. Что произошло, когда вы просто попытались добавить поле в форму в качестве field_tag и посмотрели, что появилось в параметрах? 🙂
2. Во-первых, есть ли у вас пользовательский контроллер?
Ответ №1:
Спасибо вам обоим за ответ.
Ответ был таким же простым, как выполнение следующего для создания контроллеров devise:
rails generate devise:controllers users
Затем обновление маршрута:
devise_for :users, controllers: { registrations: 'users/registrations' }
Добавление form_tag в форму:
<%= text_field_tag("company_name", nil, {class: 'form-control'}) %>
Затем обновите метод в контроллере регистраций, чтобы создать компанию:
# POST /resource
def create
super do |resource|
company_name = params[:company_name]
company = Company.new({name: company_name})
company.save!
end
конец
Комментарии:
1. В моем случае — мне все равно, существует компания или нет. Но если бы я это сделал, я полагаю, я мог бы сделать что-то вроде: Company.find_or_create_by(name: params[:company_name]);