非常简单的ruby代码在本地主机上运行时运行良好,但在推送到heroku时会中断。这是:
<ul>
<% @regulars.each do |r| %>
<li>
<%=h link_to (image_tag small_avatar_url(r.user), :class => "u_profile_img_small", :title => r.user.name), r.user %>
</li>
<% end %>
</ul>
Heroku日志中的错误引用了上面的链接行:
ActionView::Template::Error(参数数目错误(1为2))。。。
什么东西?有什么想法吗?
谢谢!
当有多个封装的方法调用时,Ruby需要适当的括号,这样它就知道哪些参数与哪个方法匹配。您可以使用不带括号的第一个方法调用(在本例中为h
),但其余的都是必需的。
<%=h link_to(image_tag(small_avatar_url(r.user), :class => "u_profile_img_small", :title => r.user.name), r.user) %>
我认为括号正在抛出您的link_to
调用。试着像这样收紧:
<%=h link_to(image_tag(small_avatar_url(r.user), :class => "u_profile_img_small", :title => r.user.name), r.user) %>
注意:您可能不想使用<%=h
,因为这将转义生成的链接中的<
和>
。