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 за решение.

Другие вопросы по тегам