我是Rails的新手,我已经通过模型@user构建了一个表单
这是我的用户控制器
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
任何的想法?
好的,这里有几件事
您的更新方法应如下所示
def me
@user = current_user.find_by(params[:Id])
end
您需要在控制器中具有允许的参数,然后将:Id添加到这些参数中
看起来您正在使用devise,您将需要使自己的用户控制器从devises控制器继承,以便您可以覆盖允许的Params
参阅devise文档,了解如何以非常简单的方式覆盖控制器
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句