我成立了其登记在DB以下徽章:的Rails:功勋宝石徽章不登记或显示
merit.rb
Merit::Badge.create!({
id: 1,
name: 'Five Tasks'
custom_fields: { img_url: '/images/badge.gif' }
})
我设置了以下规则:
badge_rules.rb
grant_on 'tasks#create', :badge => 'Five Tasks', :temporary => true, :model_name => 'Task' do |task|
task.user_ids.count == 5
end
我想要发生的事情是,当用户创建了5个任务时,他们会发布徽章。
我在merit_actions和merit_activity_log条目中看到数据库中的条目 - 但我没有看到徽章中的任何内容,我假设它们会在徽章发布时显示 - 尽管我已经超过了阈值 - -
而且我不确定如何显示徽章---我使用:
<%= current_user.badges %>
现在我得到的是括号 - 我想要它返回的是徽章的图像 - -
很大的帮助赞赏。
作为临时徽章,只要用户创建第六个任务徽章,如果按等于(而不是大于或等于)计算,该徽章将会消失。无论如何,你的情况似乎没有计算你想要的,试试:'task.user.tasks.count> = 5'。 – TuteC
工作。我将它改为:'grant_on'tasks#create',:badge =>'Five Tasks',:to =>:user do | task | task.user.tasks.count> = 5',它发布了徽章,但为了显示,我得到一个文本字符串:'[”/ images/placeholder.gif“}>]'当我试图让图片展示 - 我需要改变 - 看起来就像他们是一个已经用于图像的区域(我将它定制为一个自定义字段) - 最后如果我想重新开始 - 是否需要手动清除数据库条目 - 感谢帮助 –
user1648020
另外一个问题 - 在上述之后我尝试将规则更改为'grant_on'任务#create',:badge =>'Five Tasks',:temporary => true,:to =>:user do | task | task.user.tasks.count> = 5' - 重新启动服务器 - 使用新用户 - 按预期发布徽章 - 但是当我删除任务时显示从任务表中删除 - 但仍显示在优点行动和作为一个发行的徽章--- – user1648020