我成立了其登記在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