【发布时间】:2015-07-09 02:34:27
【问题描述】:
刚刚使用我的 rails 4 应用启动并运行 Merit gem。
到目前为止,用户在创建子文章时会收到第一个徽章。
我要授予的第二个徽章是当该子文章实际获得批准时,这只能由管理员完成。我尝试使用subarticle#update 作为操作,但它没有授予用户徽章。也许它与管理员从管理面板(rails admin gem)更新子文章有关?
这是我在初始化程序中的徽章:
Merit::Badge.create!(
id: 2,
name: "Serious Writer",
description: "Things are gettin' serious! You have successfully written an approved article."
)
以下是规则:
grant_on ['subarticles#update','subarticles#destroy'], badge_id: 2, badge:'serious writer', to: :user, temporary: true do |subarticle|
subarticle.user.subarticles.approved.count >= 1
end
有什么建议吗?这颗宝石还是新手,所以可能是一个简单的错误。
【问题讨论】:
-
您可能需要覆盖 Rails 管理控制器,就像我们对 Devise github.com/merit-gem/merit/wiki/… 所做的那样。此外,
grant_on可能应该被称为'admin/subarticles#update'。 -
你知道我会给控制器分配什么类吗?设计它的
Users::RegistrationsController < Devise::RegistrationsController,但不确定它如何与 rails_admin 一起使用。谢谢您的帮助! @TuteC -
它似乎不起作用。从正常形式(edit.html.erb)更新子文章时,徽章被授予非常好,但是从管理面板@TuteC 执行时出现问题
-
不知道如何与 rails admin 集成。需要检查 Rails 管理员的内部结构。
标签: ruby-on-rails ruby-on-rails-4 controller badge merit-gem