Ruby on rails 在ruby 1.8和rails 2.x中,如何合并参数中的值
我有一个遗留的rails应用程序,它有一些安全问题,我正在尝试修复 特别是,它使用以下方法从post中保存:Ruby on rails 在ruby 1.8和rails 2.x中,如何合并参数中的值,ruby-on-rails,Ruby On Rails,我有一个遗留的rails应用程序,它有一些安全问题,我正在尝试修复 特别是,它使用以下方法从post中保存: @user.update_attributes(params[:user]) 我想确保保存时,其中一个属性在控制器中显式设置。有一个变量: @公司 我想确保user.company\u id在调用更新\u属性之前具有@company变量中的值。如果company\u id不存在于params[:user]中,那么您可以在控制器中使用before\u filter设置comapany\u
@user.update_attributes(params[:user])
我想确保保存时,其中一个属性在控制器中显式设置。有一个变量:
@公司
我想确保user.company\u id在调用更新\u属性之前具有@company变量中的值。如果
company\u id
不存在于params[:user]
中,那么您可以在控制器中使用before\u filter
设置comapany\u id
:
before_filter: set_company_id
private
def set_company_id
##Assuming you have the @user and @company objects before using
@user.company_id = @company.id
end
因此,在执行之后:
@user.update_attributes(params[:user])
@用户对象将保存所有所需的属性…如果
参数[:user]
中不存在公司id
,则可以在控制器中使用前过滤器设置公司id
:
before_filter: set_company_id
private
def set_company_id
##Assuming you have the @user and @company objects before using
@user.company_id = @company.id
end
因此,在执行之后:
@user.update_attributes(params[:user])
@用户对象将保存所有所需的属性…如果需要,可以在控制器上将其合并为参数
user_params = params[:user].merge(:company_id => @company.id)
@user.update_attributes(user_params)
合并将确保参数中的任何公司id被覆盖如果需要,您可以在控制器处合并为参数
user_params = params[:user].merge(:company_id => @company.id)
@user.update_attributes(user_params)
合并将确保参数中的任何公司id都被覆盖只需通过以下方式更新用户参数和公司id即可。。建议通过定义pvt方法将参数列入白名单
def user_params
params.permit(:user)
end
@user.update\u属性(user\u params.to\u h.merge!({company\u id:@company.id}))
只需尝试以下操作,将用户参数与company\u id一起更新即可。。建议通过定义pvt方法将参数列入白名单
def user_params
params.permit(:user)
end
@user.update_属性(user_params.to_h.merge!({company_id:@company.id}))
params[:user]。合并({company_id:@company.id})
参数[:user]。合并({company id:@company.id})