嘿 我需要使用current_user模型来在函数内执行一些计算。在函数内部我需要执行类似current_user.name ='whatever'的操作,从而更改name的当前值。
但是,我希望该更改是本地的,只能在该函数内部完成。由于Rails使用对象,因此这是一个问题。所以我在想,最好的办法是什么?
也许将current_user克隆到一个新对象并在函数内部使用它?这看起来很贵。 或者可能从模型中创建哈希?如果我这样做,实际模型将不会改变?
编辑:似乎哈希工作,但没有与之关联的类型,所以如果我这样做:@attacker = current_user.attributes
然后,要使用它,我必须指定to_s like(否则由于某种原因我得到一个nil错误):
@attacker [:name] .to_s ='whatever'
答案 0 :(得分:0)
参数?
def my_f(name)
new_name = "lorem" + name
return new_name
end
控制器中的某处:
loremized_name = my_f(current_user.name)
答案 1 :(得分:0)
如果您需要模型中的所有逻辑,最简单的方法就是简单地克隆它:
def local_function
user = current_user.clone
# Perform some calculations on user here
end