我的控制器在更新时调用此模型方法:
def update_standard(param_attributes)
...
if param_attributes[:is_legacy] == true
param_attributes[:foo_type_id] = 2
end
update_attributes(param_attributes)
end
foo_type_id
应该覆盖用户在表单中输入的内容,但用户的选择是写入数据库的内容。如果foo_type_id
为真,我如何强制is_legacy
为2?
答案 0 :(得分:2)
param_attributes[:is_legacy] == "true" ? param_attributes[:foo_type_id] = 2 : param_attributes[:foo_type_id]
update_attributes(param_attributes)
答案 1 :(得分:1)
您应该检查以确保params[:is_legacy]
实际返回true
而不是"true"
- 非常确定params始终是字符串。
答案 2 :(得分:0)
我认为您的逻辑评估可能存在一些问题。
尝试将此更改为以下内容并查看其是否有效?
if !param_attributes[:is_legacy].nil? && param_attributes[:is_legacy].to_sym == :true
param_attributes[:foo_type_id] = 2
end