Ruby on rails 减少Rails中的模型代码

Ruby on rails 减少Rails中的模型代码,ruby-on-rails,Ruby On Rails,这主要是一个关于最佳实践的理论问题。我目前正在编写一个小型浏览器游戏,似乎大多数代码都是用户模型的实际部分 这包括(hasQuest、deleteQuest、isLeader、getAlliance、sendMessage)和其他一些 我在想,也许用户模型代码有点过度使用了 问题是在用户中使用此函数更自然。例如,当用户模型作为实例方法调用hasQuest时,它与实际代码中的current_user.hasQuest类似。另一方面,如果作为TavernQuest的类方法调用,它将是TavernQu

这主要是一个关于最佳实践的理论问题。我目前正在编写一个小型浏览器游戏,似乎大多数代码都是用户模型的实际部分

这包括(hasQuest、deleteQuest、isLeader、getAlliance、sendMessage)和其他一些

我在想,也许用户模型代码有点过度使用了

问题是在用户中使用此函数更自然。例如,当用户模型作为实例方法调用hasQuest时,它与实际代码中的current_user.hasQuest类似。另一方面,如果作为TavernQuest的类方法调用,它将是TavernQuest.getQuest(当前_用户),我觉得它的语法更糟糕


你觉得怎么样?我的方法正确吗,还是我应该放弃在用户模型中使用太多的代码?

在您的模型中使用代码是一件好事(与您的控制器相反)。。。减少模型膨胀的一件事是包含模块

class User
  include UserModules::Gameable
end
/lib/user\u modules/gameable.rb

module UserModules
  module Gameable   
    def is_leader?
      leader? #or whatever
    end
  end
end

除了减少user.rb的大小外,它还将提高代码的可重用性。

谢谢,我使用的是实用程序模块,我只需要确保我使用的方法是正确的:)