Rails克隆还是哈希?

时间:2011-01-29 21:31:55

标签: ruby-on-rails

嘿   我需要使用current_user模型来在函数内执行一些计算。在函数内部我需要执行类似current_user.name ='whatever'的操作,从而更改name的当前值。

但是,我希望该更改是本地的,只能在该函数内部完成。由于Rails使用对象,因此这是一个问题。所以我在想,最好的办法是什么?

也许将current_user克隆到一个新对象并在函数内部使用它?这看起来很贵。 或者可能从模型中创建哈希?如果我这样做,实际模型将不会改变?

编辑:似乎哈希工作,但没有与之关联的类型,所以如果我这样做:

@attacker = current_user.attributes

然后,要使用它,我必须指定to_s like(否则由于某种原因我得到一个nil错误):

@attacker [:name] .to_s ='whatever'

2 个答案:

答案 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