我有以下代码:
<% 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
我显然在这里遗漏了一些东西......
答案 0 :(得分:10)
你至少应该在内部方法调用周围加上括号:
<%= link_to image_tag(design.avatar.url(:thumb)), design %>
因为ruby将design
解释为image_tag
的第二个参数,而image_tag
需要一个哈希,它会尝试规范化(使用symbolize_keys!
)