我想在更新功能中修改其中一个参数,然后再进行更新。
我可以执行以下操作来提取值:abort house_show_params[:pricing_option].inspect
,但我想对其进行修改。
我尝试过:
house_show_params[:pricing_option] = 5
house_show_params.update_attribute(pricing_option: 5)
那没有用。
更新功能
def update
@house_show = current_user.house_show
respond_to do |format|
if @house_show.update(house_show_params)
......
答案 0 :(得分:0)
我会使用write_attribute
方法在模型中完成此操作(控制器不是正确的位置)。
例如,如果我想在存储之前删除company_name
字段,则可以(在我的模型中)这样做:
def company_name=(value)
self[:company_name] = value&.strip
end
这与操作相同(您可以选择自己喜欢的任何方式):
def company_name=(value)
my_model.write_attribute(:company_name, value&.strip)
end
尽管您应该使用上面的两个示例来回答您的问题,但是该页面说明了您所拥有的选项: https://davidverhasselt.com/set-attributes-in-activerecord/