2014-09-29 97 views
0

我在鐵軌很新的我已經建立了從我的模型形式@user更新模型4

這是我的用戶控制器

def me 
@user = User.find_by_id(current_user.id) 

if !params.empty? 
    @user.update_attributes params[:user] 
end 
end 

但我收到此錯誤:

::加載ActiveModel ForbiddenAttributesError

這是我的模型:

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    private 

    def user_params 
    params.require(:user).permit(:name, :surname, :email, :phone, :mobile) 
    end 
end 

我試圖在這裏定義的 「更新」 的方法,但我得到的錯誤是這樣的:

::加載ActiveModel ForbiddenAttributesError

任何想法?

+0

嘗試添加:標識爲您的允許參數作爲開始 – Richlewis 2014-09-29 21:08:11

+0

而那些允許的參數應該確實在控制器 – Richlewis 2014-09-29 21:09:09

回答

0

好這麼幾個在這裏

東西你更新的方法應該是這樣的

def me 
    @user = current_user.find_by(params[:Id]) 

end 

您需要在您的允許PARAMS在你的控制器,並添加:身份證到這些PARAMS

由於它看起來像您的使用設計,您將需要使您自己的用戶控制器繼承自設計控制器,以便您可以覆蓋允許的參數

查看設計文檔如何重寫控制器,因爲它非常簡單

+0

謝謝您將許可證放入我的控制器是解決方案 – 2014-09-30 06:29:06