【问题标题】:Merit gem no longer works on Rails 4.1Merit gem 不再适用于 Rails 4.1
【发布时间】:2014-04-16 00:17:15
【问题描述】:

所以我在 rails 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 %>

任何帮助将不胜感激。

【问题讨论】:

    标签: ruby-on-rails-4 badge merit-gem


    【解决方案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 上的 marcosgugs 提供解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多