重构Ruby on Rails片段

时间:2011-11-24 10:54:08

标签: ruby refactoring ruby-on-rails-3.1

Accountuser之间的关联是一对多的 Account has many Users

我需要在帐户模型方法中做一些需要用户对象的事情。

现在,我正在做:

User.first.account.get_something(User.first)

但这似乎不是一种好的做法。

我怎么能在上面重构。

1 个答案:

答案 0 :(得分:0)

这段代码似乎是一种非常迂回的方式,从一个到另一个......然后再回来。

正如ShiningRay建议的那样 - 您可能需要将该方法移出用户。

class User
  def get_something
    do_stuff(self.account)
  end
end

然后你可以调用:User.first.get_something

或者你可以使用它:

u = User.first
u.account.get_something(u)

但它只是让人感到羡慕。