Q:

Musician expected, got String

I'm trying to create a new User, but User has_one Musician, and Musician belongs_to User. Before create this relation, my create was working, but now I'm receiving the error:
Musician expected, got String
But I don't know why this is happening, I guess is something with my user_id, like this topic Country expected, got String error but I'm not sure, and don't know how to fix it, here is my User controller
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

And here is the submit
{"utf8"=>"✓",
 "authenticity_token"=>"VjOUW75ocw8rw/rEqa076x9N/Oa/5AjMxBOmRGAaDAM=",
 "user"=>{
 "firstName"=>"Eduardo",
 "lastName"=>"Almeida",
 "email"=>"eduardo@teste.com.br",
 "city"=>"Mogi",
 "password"=>"[FILTERED]",
 "password_confirmation"=>"[FILTERED]",
 "musician"=>"true"},
 "commit"=>"Criar Conta"}

EDIT: The form
<%= 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 %>

A:

You are creating a new User with the parameters from your request. This includes a musician parameter. This is equivalent to doing:
u = User.new
u.musician = "true"

The user instance is expecting a Musician instance because of your has_one :musician association.
To fix you could rename the parameter you use to indicate whether a musician or a studio should be added to your new user, e.g. new_musician
I think you'll then hit a problem with testing params[:user].new_musician. params[:user] is a Hash so you need to access it like params[:user][:musician]. Also, it is going to have a string value "true" or "false" so you'll need to check:
if params[:user][:new_musician] == "true"

