在Ruby on Rails中拥有默认用户设置的最佳方法?

时间:2011-12-13 12:00:04

标签: ruby-on-rails configuration user-controls

我目前正在开发一个RoR应用程序,用户可以在其中注册并拥有一个(比方说20个)图像格式列表。这些图像格式有自己的模型。网站管理员可以添加或删除格式。用户应该能够激活某些格式或停用。

我在考虑为每个用户添加20种格式到数据库,但如果管理员选择删除或添加一种格式,那就不灵活了。他们应该是一个更可维护的方式吗?

1 个答案:

答案 0 :(得分:0)

你的解释不是很详细。特别是我错过了问题中的“默认”设置。

第一件事(简单的一件事): 管理员可以为他希望在网站上允许的每种格式创建条目。所以表格中应该只有一个这样的条目

用户可以从这些格式中选择几种(最多限制?)为什么需要特别选择它们?他们不能只使用管理员允许的一切吗?如果管理员删除格式会上传图像会怎样?

无论如何,最好的是User和ImageFormat之间的has_and_belongs_to_many关系。或者,如果需要任何其他数据,则构建此桥的另一个Model(UserImageFormat)。

对于管理员删除某些格式的情况,您可以通过多种方式处理此问题。您可以在格式记录中添加“活动”标记,然后在每次使用模型时检查此标记,或者实际上只删除此记录(在这种情况下,请确保您的关联设置为:dependent => :destroy所以所有将用户连接到格式的记录也会被销毁。(编写测试以确保这一点)

也许你可以找到一些帮助它的宝石或插件。 This article可能会为您提供更多帮助。也许某些身份验证插件可以添加访问控制。但我认为你的需求(用户可以在某种程度上影响他可以使用/访问的内容)可能过于特殊,因为这类工作的大多数宝石更有可能解决以管理员为中心的访问控制。