0

我想创建管理员帐户,目前使用 devise gem 作为用户帐户。在应用程序上,用户创建他们的产品。管理员角色将验证产品并批准它们。在管理员批准之前,不应发布产品。我不知道该怎么做。谁能告诉程序?这将是很大的帮助。谢谢。

4

3 回答 3

2

我会创建一个 column approved,默认情况下将 boolean 类型输入到Product集合中false。所以只有管理员才能看到这些产品。

current_user.admin? ? @products = Product.all : @products = Product.where(:approved => false) 

然后,您可以使用相同的想法列出要批准的产品。

现在你可以开始尝试一些代码,当你开始遇到代码问题时你可以回来。

于 2013-02-15T11:40:48.277 回答
2
  1. 安装rails admin gem(可选,但它是一个很棒的 gem,因此您不必从头开始构建管理面板)
  2. 通过运行将一个布尔字段添加published到您的产品表中rails g migration add_published_field_to_products published:boolean
  3. 进入生成的迁移文件并添加default: false到列中
  4. rake db:migrate
  5. 为您的产品模型添加范围:scope :published, where(published: true)

瞧!现在管理员将能够发布或取消发布您的产品,并且在您的控制器中,您可以说@products = Product.published获取所有已发布的产品。

于 2013-02-15T11:39:00.237 回答
0

如果您想在更广泛的层面上实现这一点,请使用 Ryan Bates cancan gem。您可以在视图级别设置角色和控制显示。

于 2013-02-16T11:41:48.593 回答