帮助rails内容过滤

时间:2009-11-03 20:31:01

标签: ruby-on-rails

我在rails中创建自己的博客管理应用程序(用于实验目的)....最好的方法是什么? 我有帖子和类别。 我希望有一个类别下拉列表供用户在创建新帖子时选择一个。 现在,每个用户将拥有不同的权限,因此并非所有用户都应显示所有类别.... 现在我可以创建帖子并选择我想要的类别...我没有为每个用户支持添加任何过滤器.... 请帮我,我现在应该去哪里?

2 个答案:

答案 0 :(得分:1)

首先,您需要实施身份验证和授权。关于这些主题有很多很好的Rails教程,所以我不会在这里详细介绍。

此时您将拥有User,Post和Category的模型。您需要每个授权类别的用户列表。一个天真的模型:

class User < ActiveRecord::Base
  has_and_belongs_to_many :categories
end

但这是误导性的,因为用户实际上并没有“进入”任何类别。你可能想要像这样的连接模型:

class UserCategoryAuthorization < ActiveRecord::Base
  belongs_to :user
  belongs_to :category
  // More fields here; possibly:
  // belongs_to :authorized_by, :class_name => 'User'
end

class User < ActiveRecord::Base
  has_many :user_category_authorizations
  has_many :authorized_categories,
           :through => :user_category_authorizations,
           :source => :category
end

答案 1 :(得分:0)

首先,我会给用户一个has_many类别关系(如果这个想法变得更复杂,你可以在某些时候变成自己的模型对象......或者现在如果它已经有意义了)然后假设你已经有了日志在功能中,您可以向登录用户询问其类别并适当填充下拉列表。

如果这是一个安全问题而不仅仅是方便,那么当表单提交回服务器时,您需要验证所选类别是否在用户类别中。

如果您还没有登录,我相信有几个rails插件可以帮助您快速获得此功能。