2016-08-03 10 views
1

私のユーザに新しいオブジェクトを追加する必要があるいくつかの新しいプロパティは、自分のデータベースからフォームをサブミットするときに定義するいくつかの新しいプロパティですが、新しいプロパティを投稿すると、ここで、なぜruby​​ on rail新しいオブジェクトのプロパティ

def create 
    plan  = params[:user][:plan] 
    @plan_vars = Plan.find(plan) 

    @user  = User.new(user_params, :plan_id => @plan_vars.id, :lessons => @plan_vars.lessons) 
    if @user.save 
     flash[:success] = "Usuario creado exitosamente" 
     redirect_to users_path 
    else 
     flash[:warning] = "Ooops... algo ha fallado :O #{@user.errors}" 
     redirect_to new_user_path 
    end 
    end 

def user_params 
     params.require(:user).permit(:name, :email, :phone, :document, :password, 
            :password_confirmation) 
    end 

答えて

1

のparamsユーザーはここで何をするかですか?

これを実行します。ネストされたフォームを使用したり、エラーの別のタイプが結果の配列を返します@plan_varsさ

@user = User.new(user_params) 
@user.plan_id = @plan_vars.id 
@user.lessons = @plan_vars.lessons 
@user.save 

場合

+0

ある

def create plan = params[:user][:plan] @plan_vars = Plan.find(plan) @user = User.new(user_params.merge(plan_id: @plan_vars.id, lessons: @plan_vars.lessons)) # ... end 

@pradeep! – mdiaz00147

+0

[OK]をクリックします。励ましは将来も私を助け続けます。 –

0

あなたはuser_paramsハッシュ

def user_params 
    params.require(:user).permit(:name, :email, :phone, :document, :password, 
           :password_confirmation) 
         .merge(plan_id: @plan_vars.id, lessons: @plan_vars.lessons) 
end 


def create 
    plan = params[:user][:plan] 
    @plan_vars = Plan.find(plan) 
    @user = User.new(user_params) 
end 

に計画のparamsをマージすることができます希望、それは助ける!

0

私はLavikaの答え@に似たものを好むが、マージでのアクション作成sapkotaの答えも完璧!多くのおかげで働いた良いオプション

関連する問題