0

DBに登録された次のバッジを設定しました:

メリット.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 つのタスクを作成したときにバッジが発行されることです。

DB の Merit_actions エントリと Merit_activity_log エントリにエントリが表示されますが、バッジが発行されたときに表示されると思われる Badges_sashes には何も表示されません。しきい値を超えているにもかかわらずです。

また、バッジを表示する方法がわかりません --- 私は以下を使用しています:

<%= current_user.badges %>

今私が得るのは括弧だけです-私が返したいのはバッジの画像です---

どんな援助も大歓迎です。

4

3 に答える 3

2

Are you accessing the badge's custom_fields as a hash? Those custom attributes that you add into custom_fields like img_url, difficulty, color, etc... won't be accessible in simple dot notation ie. badge.img_url won't work. Instead you need to do something like badge.custom_fields[:img_url] or badge.custom_fields[:whatever_custom_attribute]. Hopefully, the fix will be that simple.

于 2014-03-12T07:08:20.557 に答える
0

同様の質問を持つ他の人へ:私は最終的に以下を使用してバッジを表示することができました:

<% current_user.badges.each do |badge| %>
<%= image_tag (badge.image) %>
<% end %>
于 2013-12-13T04:05:45.917 に答える