使用 Merit Gem,我想为我的应用程序的前 100 位用户创建一个 Pioneer 徽章。
Merit.rb 中的代码
Merit::Badge.create!(
id: 1,
name: 'Pioneer',
description: "Belongs to the 100 first users of the site",
image: '/images/pioneer.png'
)
badges_rules.rb 中的代码考虑到我正在使用设计进行身份验证。所以我按照这个如何。
grant_on 'users/registrations#create', badge: 'Pioneer', model_name: 'User' do |user|
user.id < 101
end
它没有创建任何徽章。有趣的是,另一个徽章工作得很好:
grant_on 'users/registrations#create', badge: 'Inscription', model_name: 'User'
似乎 Devise 正在弄乱用户对象。我确实覆盖了注册控制器,就像 Howto 说的那样。当我以简单的方式调用这个控制器时,就像这个“铭文”徽章一样,一切都很好。
但是当我需要对用户 ID 设置条件时,什么也没有发生。
有关信息,这是来自用户显示视图的代码,其中显示了徽章(这是有效的)。
<% @user.badges.first(5).each do |b| %>
<%= image_tag(b.image) %>
<%= b.name %>
<%end%>