2017-07-27 67 views
0

有以前的帖子討論如何添加用戶名到設計模型。不幸的是,這些帖子沒有討論如何設置視圖。主要是,我有興趣更新我怎樣才能設計添加用戶名與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

我目前沒有用戶控制器。你是說我應該把一個文件user.rb放在我的app/controllers中? – user1876508

+0

沒有user.rb是模型,模型是不同的控制器,你應該使用用戶控制器 – widjajayd