首先,我非常清楚完全清楚这两种不良做法。
我有一个设置attr_accessible
的模型。我想开始将我们的应用程序转换为strong_parameters
。问题是我需要在重构应用程序的各个部分时这样做。我是否可以使用ActiveRecord方法来更新绕过attr_accessible
的属性?或者我可以定义绕过它的attr_accessible=false
类型的东西吗?
代码示例:
型号:
class User < ActiveRecord::Base
attr_accessible :first_name, :last_name, :email, :password
end
控制器:
class UsersController < ApplicationController
before_action :set_user
def update
@user.assign_attributes(user_params)
@user.save!
end
private
def set_user
@user = User.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def user_params
params.require(:user).permit(
:first_name, :last_name, :email, :other_attribute_not_in_accessible
)
end
end
答案 0 :(得分:1)
发现它!
在控制器中,执行以下操作:
@user.update_attributes(user_params,:without_protection=>true)
然后它会起作用。