Я пытаюсь создать нового пользователя, но User has_one Musician и Musician принадлежит пользователю. Перед тем как создать эту связь, мои создания работал, но теперь я получаю сообщение об ошибке:Музыкант ожидал, получил String
Музыкант ожидалось, получил Строка
Но я не знаю, почему это происходит, я думаю, что-то с моим user_id , как эту тему Country expected, got String error, но я не уверен, и не знаю, как это исправить, вот мой контроллер Пользователь
def create
@user = User.new(params[:user])
if params[:user].musician
@user.musico = Musician.New
else
@user.estudio = Studio.new
end
if @user.save
sign_in @user
flash[:success] = "Welcome!!"
redirect_to @user
else
render 'new'
end
end
а вот представить
{"utf8"=>"✓",
"authenticity_token"=>"VjOUW75ocw8rw/rEqa076x9N/Oa/5AjMxBOmRGAaDAM=",
"user"=>{
"firstName"=>"Eduardo",
"lastName"=>"Almeida",
"email"=>"[email protected]",
"city"=>"Mogi",
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]",
"musician"=>"true"},
"commit"=>"Criar Conta"}
EDIT: Форма
<%= form_for(@user) do |f| %>
<%= render 'shared/erros' %>
<%= f.label :firstName, "Nome" %>
<%= f.text_field :firstName%><br/>
<%= f.label :lastName, "Sobrenome" %>
<%= f.text_field :lastName%><br/>
<%= f.label :email, "Email"%>
<%= f.text_field :email%><br/>
<%= f.label :city, "Cidade"%>
<%= f.text_field :cidade%><br/>
<%= f.label :password, "Senha"%>
<%= f.password_field :password%><br/>
<%= f.label :password_confirmation, "Confirme a senha"%>
<%= f.password_field :password_confirmation%><br/>
<%= f.hidden_field :newMusico, :value => true%>
<%= f.submit "Criar Conta", class: "btn btn-large btn-primary" %>
<% end %>
Музыкант ожидал, получил гитарист :-) :-)? –
'Musician.New' - проблема. Дело имеет значение на языке, чувствительном к регистру. Это также несколько загадочные отношения. Похоже, вы пытаетесь установить флаг в true/false, указав, является ли пользователь музыкантом, который имеет больше смысла, чем пользователь *, имеющий * музыканта. – meagar
Это происходит потому, что по умолчанию все пользователи являются музыкантами, но если администратор создает пользователя, пользователь является Studio, а модели имеют разные столбцы. На самом деле пользователь музыкант (или студия) –