2016-04-12 5 views
1

adminで作成しているときにユーザーのデフォルトパスワードを生成して設定したいとします。どのようにレールの強いパラメータにデフォルトデータを追加するのですか?

と私はこのような何かをしたい、

def user_params 
    params.require(:user).permit(:first_name, :last_name, :email, :password=> @default_generated_password, :password_confirmation => @default_generated_password) 
end 

私はユーザー認証のために魔術を使用しています。 これは完全に間違っていると感じていますが、どうすればいいですか?

+0

でそれを必要とする場合は正直なところ、私はデフォルトのparamsが属するところそれはないと思います。それらは、データベーススキーマにないモデルのいずれかに属します。 – Almaron

答えて

0

params 
.require(:user) 
.permit(:first_name, :last_name) 
.merge(password: @default_generated_password, password_confirmation: @default_generated_password) 

後にそれらをマージしたり、あなただけのワンアクション(たとえば作成)

def create 
    # password generation code... 
    # ... 

    @user = User.new(user_params.merge(password: @default_generated_password, password_confirmation: @default_generated_password)) 

    if @user.save 
    redirect_to ... 
    else 
    flash[:error] = "Did not save" 
    render :new 
    end 
end 

private 

def user_params 
    params.require(:user).permit(:first_name, :last_name) 
end 
関連する問題