Андрей Крисанов @Coder89
CTO в ПланФакт
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Backend Developer, Chief Technology Officer (CTO)
Lead
Project management
Development management
People management
Designing application architecture
Единственное что меня удручает в Windows Phone — малое количество КАЧЕСТВЕННЫХ приложений.
Но при регистрации теперь получаю ошибку «ArgumentError in RegistrationController#create»
Cannot build association character. Are you trying to build a polymorphic one-to-one association?
Request
Parameters:
{«utf8»=>"✓",
«authenticity_token»=>«62bE9GNDQ1QFn5UDP34EmxLlHSRiKzCSPwJO8BiNuYU=»,
«user»=>{«character_type»=>«Company»,
«email»=>"",
«password»=>"[FILTERED]",
«password_confirmation»=>"[FILTERED]",
«character_attributes»=>{«name»=>""}},
«commit»=>«Зарегистрироваться»}
Но когда рендериться страница с формой полей этих нет, только поля модели User.
В чем может быть причина, я не правильно описываю форму? Или т.к. запись еще не сохранена (т.е.) в базе фактически нет записи user (и заполненных полей character_id, character_type), то мы не можем и заполнить данные модели Individual? (хотя я больше расчитываю на то, что я ошибся где-то).
Андрей, такой еще вопрос: вот выбирает юзер в форме регистрации тип пользователя, как динамически перестроить форму?
Я сделал два partial, в которые поместил обязательные для заполнения поля. По умолчанию у меня выбран 1й тип юзера в селекте и отображается 1й partial. Но когда выбрал в селекте 2й тип юзера, должен отобразиться 2й partial вместо 1го.
Залил на pastebin.com/yAvstYzE
Моя вью регистрации:
<div class="center"> <h2>Регистрация</h2><br/> <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %> <%= devise_error_messages! %> <div><%= f.select :character, options_for_select([["Физлицо", "Individual"], ["Компания", "Company"]]) %></div> <div><%= f.email_field :email, :placeholder => 'Адрес электронной почты' %></div> <div><%= f.password_field :password, :placeholder => 'Пароль' %></div> <div><%= f.password_field :password_confirmation, :placeholder => 'Подтверждение пароля' %></div> <div><%= f.submit "Зарегистрироваться", :class => 'btn btn-danger' %></div> <% end %> <%= render "devise/shared/links" %> </div>