Rails:管理员批准用户创建的产品

时间:2013-02-15 11:21:17

标签: ruby-on-rails ruby-on-rails-3

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

3 个答案:

答案 0 :(得分:2)

  1. 安装rails admin gem(可选,但它是一个非常棒的宝石,因此您不必从头开始构建管理面板)
  2. 运行published
  3. ,将名为rails g migration add_published_field_to_products published:boolean的布尔字段添加到您的产品表中
  4. 进入生成的迁移文件,并将default: false添加到列
  5. 运行rake db:migrate
  6. 为您的产品型号添加范围:scope :published, where(published: true)
  7. 瞧!现在,管理员可以发布或取消发布您的产品,并且在您的控制器中,您可以说@products = Product.published之类的内容来获取所有已发布的产品。

答案 1 :(得分:2)

我会创建一个列approved,默认情况下将Product类型设置为false。所以只有管理员才能看到那些产品。

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

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

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

答案 2 :(得分:0)

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