我目前正在用 Ruby(不是 Rails)构建一个应用程序,它使用 ActiveRecord 作为 ORM 和 sqlite 作为数据库。
一个示例代码,只是为了澄清我的问题:
class User < ActiveRecord::Base
has_many :logins, :foreign_key => :user_id
has_many :categories, :foreign_key => :user_id
has_many :news, :foreign_key => :user_id
has_many :settings, :foreign_key => :user_id
class << self
def get_user_by_id(id)
find(id)
end
def insert(username, password)
create(:username => username, :password => password)
end
end
end
代码(关系、模型等)现在一点也不复杂。但是,当我的模型开始变大时,我不想在同一个类中混合业务逻辑和持久性逻辑。我希望能够更改我的持久性方法(文件、内存中、其他数据库结构)。有没有既定的方法来解决这个问题?我读到在 Rails 中,“瘦控制器,胖模型”很常见,但我正在寻找解决这个问题的方法。