каждый User
может иметь только один MedicalHistory
, поэтому у меня есть
class User < ActiveRecord::Base
acts_as_authentic
end
class MedicalHistory < ActiveRecord::Base
belongs_to :user
end
. Используя вышеизложенное, я могу успешно создать пользователя из модели MedicalHistory
в консоли:
newuser = Medicalhistory.new
newuser.user = User.new
newuser.user.username='testusername'
newuser.user.password='blahblah'
newuser.user.password_confirmation='blahblah'
newuser.user.save
MedicalHistory Side выглядит следующим образом
#controller
def new
@medicalhistory = MedicalHistory.new
@medicalhistory.user = User.new
end
#form
<%=...%>
<%=f.intput :cell_phone%>
<%=f.fields_for :user do |builder|%>
<%= render "registration_form", :f => builder %>
<% end %>
#Partial
<%=f.input :email%>
<%=f.input :password%>
<%=f.input :password_confirmation%>
Ошибка
При отправке формы я получаю сообщение об ошибке ниже:
User(#-) expected, got ActiveSupport::HashWithIndifferentAccess(#)
Ошибка в следующей строке:
#controller
def create
@medicalhistory = Medicalhistory.new(session[:medicalhistory_params]) #gives error
#somewhere here I should extract registration fields and register the user
end
Вопрос Есть ли способ избежать полей в частичном (поля регистрации), попадающих в session[:medicalhistory_params]
... есть ли except
или что-то?