Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Merit gem不再适用于Rails 4.1_Ruby On Rails 4_Badge_Merit Gem - Fatal编程技术网

Ruby on rails 4 Merit gem不再适用于Rails 4.1

Ruby on rails 4 Merit gem不再适用于Rails 4.1,ruby-on-rails-4,badge,merit-gem,Ruby On Rails 4,Badge,Merit Gem,所以我在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

所以我在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>
的未定义方法“image”#
我根本没有改变密码。没有碰价值初始值设定项。。。或者应用程序。rb。。。没有什么。我不太明白为什么它不起作用。下面是application.rb中的代码:

<% current_user.badges.each do |badge| %>
<%= image_tag (badge.image), :alt => badge.description, :float => "left" %>
<% end %>

badge.description,:float=>“left”%>
任何帮助都将不胜感激。

好的解决方案(以防其他人遇到此问题)与“自定义字段”有关。任何自定义字段都必须这样引用(出于某种原因,在Rails3.2中不需要这样做,但在Rails4.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" %>
badge.description,:float=>“left”%>

这要归功于github的marcosgugs