在Ruby on Rails 3应用程序中,实现设置的首选方式是什么?

6

我正在构建一个Rails 3应用程序,将具有用户特定的设置(外观、功能等),我想寻求一些简单的建议,关于实际实现设置的首选方式。

您是否喜欢为此使用专用模型?在数据库字段中存储哈希是否可接受?您是否更喜欢cookie或会话而不是数据库?STI对象最好吗?

如果可以的话,也许列出每种不同方法的优缺点。

谢谢。

2个回答

4

我有和你相似的情况,涉及到用户特定设置。在我的应用程序中,我更喜欢创建一个模型来存储用户的配置信息,我有一个用户模型和一个用户配置模型,两者之间是一对一的关系。

class User < ActiveRecord::Base
  has_one :user_configuration
end

class UserConfiguration < ActiveRecord::Base
  belongs_to :user, :dependent => :destroy
end

或者如果您喜欢使用哈希并将其存储到数据库中,可以将字段标记为序列化

class User < ActiveRecord::Base
  serialize :preferences, Hash
end

你可以在http://api.rubyonrails.org/classes/ActiveRecord/Base.html上查看它。

优点: - 到目前为止,我没有遇到任何问题,易于维护。

缺点: - 请求数据库中更多的表格。

也许它可以帮助你,谢谢。


谢谢!这就是我在寻找的。我相信它也完全取决于项目的规模。 - Branden Silva
我决定采用模型方法。我认为从长远来看,这将更容易维护,因为应用程序会不断增长。我还读到过,序列化基于数据库中存储的文本字段大小有其限制,这可能是另一件需要担心的损坏数据返回的事情。总体而言,我相信性能问题可以得到缓解,如果最坏的情况发生,您可以将键/值存储对外包给服务以减轻数据库负载。 - Branden Silva

3

谢谢指出这些宝石。在我自己掌握Rails本身之后,我可能会尝试其中的一些。 - Branden Silva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接