Merit gem больше не работает на Rails 4.1
Таким образом, я загрузил значок с изображением очень хорошо на рельсах 3.2
badges = [ {id: 1, name: 'Democratic-Society', description: "Voted for two bands", image: "demo_society2.gif"}
]
badges.each do |badge|
Merit::Badge.create!(badge)
end
Но я только что обновил свой сервер программного кода до Rails 4.1... и теперь он выдает следующую ошибку:
undefined method `image' for #<Merit::Badge:0x007f57949ba8f0>
Я не изменил код ВСЕ. Не трогал инициализатор заслуг... или application.rb... ничего. Не могу понять, почему это не работает. Вот код из application.rb:
<% current_user.badges.each do |badge| %>
<%= image_tag (badge.image), :alt => badge.description, :float => "left" %>
<% end %>
Любая помощь будет оценена.
1 ответ
Решение
Хорошо, решение (в случае, если кто-то еще сталкивается с этим) связано с "custom_fields". На любые настраиваемые поля нужно ссылаться как таковые (по какой-то причине вам не нужно было делать это в Rails 3.2, но вы делаете это в Rails 4.1)
Так что все, что я сделал, это изменил код так:
badges = [ {id: 1, name: 'Democratic-Society', description: "Voted for two bands", custom_fields: {image: "demo_society2.gif"} }]
И тогда, на мой взгляд:
<%= image_tag (badge.custom_fields[:image]), :alt => badge.description, :float => "left" %>
И ВОЙЛА!
Отдайте кредит в GitHub за решение.