Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在ruby 1.8和rails 2.x中,如何合并参数中的值_Ruby On Rails - Fatal编程技术网

Ruby on rails 在ruby 1.8和rails 2.x中,如何合并参数中的值

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

我有一个遗留的rails应用程序,它有一些安全问题,我正在尝试修复

特别是,它使用以下方法从post中保存:

@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})