2017-07-27 19 views
0

deviseモデルにユーザー名を追加する方法については以前の投稿があります。残念ながら、これらの投稿ではビューを設定する方法は説明されていません。主に、私は更新に興味がありますrailsでユーザー名を追加する方法を教えてください。5

devise/registrations/edit.html.erb 

ファイルです。その中で、私はユーザが自分のユーザ名を更新できるように、次の行を追加しました。

<div class="field"> 
    <%= f.label :username %><br /> 
    <%= f.text_field :username %> 
</div> 

残念ながら、フォームを保存すると、ユーザー名は更新されません。なぜこうなった?

+0

ユーザーコントローラのためのいくつかのコードですデータベースに登録されていますか? –

答えて

-1

Devise on Github の手順に従うと、ビューを追加する必要はありませんが、Deviseに付属のものをカスタマイズできます。

登録やサインインのプロセスを変更する場合は、wikiを読むことをお勧めします。カスタムコントローラに関するすべての情報と、どのようにroute.rbがDeviseのドキュメントにあるべきですか。あなたは、以下の(いないデバイスの登録から)とユーザコントローラを使用することができ、ユーザを更新したい場合、私は、上記のあなたのコメントを確認

0

は、ユーザーを作成するときに、ユーザーが適切である

class UsersController < ApplicationController 

    def edit 
    @user = User.find(params[:id]) 
    end 

    def update 
    # devise 
    if params[:user][:password].blank? 
     params[:user].delete(:password) 
     params[:user].delete(:password_confirmation) 
    end 
    @user = User.find(params[:id]) 
    if @user.update_attributes(user_params) 
     flash[:success] = 'User Successfully changed' 
     sign_out_and_redirect(@user) 
     # push the user to sign out 
    else 
     flash[:error] = @user.errors.full_messages[0] 
     redirect_to users_path 
    end 
    end 

    private 

    # white list parameter 
    def user_params 
    params.require(:user).permit(
     :username, 
     :password, 
     :password_confirmation, 
     :email 
    end 
end 
+0

私は現在ユーザーコントローラがありません。あなたは私のapp/controllersにuser.rbというファイルを置くべきだと言っていますか? – user1876508

+0

user.rbはモデル用ではありません。モデルはコントローラとは異なります。ユーザーコントローラを使用する必要があります。 – widjajayd

関連する問題