link_to =&gt;里面的回形针图片undefined方法`symbolize_keys!'对于#<design:0x00000002dfa5f0> </design:0x00000002dfa5f0>

时间:2011-09-27 11:11:12

标签: ruby-on-rails

我有以下代码:

<% if design.avatar.file? %>
    <%= link_to image_tag design.avatar.url(:thumb), design %>
<% else %>
    <%= link_to image, design %>
<% end%>

我得到了这个错误:

undefined method `symbolize_keys!' for #<Design:0x00000002dfa5f0>

但是,如果我从第一个链接中删除设计部分,请保留以下代码:

<% if design.avatar.file? %>
    <%= link_to image_tag design.avatar.url(:thumb) %>
<% else %>
    <%= link_to image, design %>
<% end%>

有效!显然首先是一个空链接,但是呈现页面。

图像变量在application_helper.rb中定义如下:

def image
    image = image_tag("image.jpg", :alt => %(No image available), :class => "round")
end

我显然在这里遗漏了一些东西......

1 个答案:

答案 0 :(得分:10)

你至少应该在内部方法调用周围加上括号:

<%= link_to image_tag(design.avatar.url(:thumb)), design %>

因为ruby将design解释为image_tag的第二个参数,而image_tag需要一个哈希,它会尝试规范化(使用symbolize_keys!