我想创建管理员帐户,目前使用 devise gem 作为用户帐户。在应用程序上,用户创建他们的产品。管理员角色将验证产品并批准它们。在管理员批准之前,不应发布产品。我不知道该怎么做。谁能告诉程序?这将是很大的帮助。谢谢。
问问题
900 次
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
- 安装rails admin gem(可选,但它是一个很棒的 gem,因此您不必从头开始构建管理面板)
- 通过运行将一个布尔字段添加
published
到您的产品表中rails g migration add_published_field_to_products published:boolean
- 进入生成的迁移文件并添加
default: false
到列中 - 跑
rake db:migrate
- 为您的产品模型添加范围:
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 回答