Rails-未定义的方法'stringify_keys'


78

我正在尝试为用户单击后退按钮创建一个红宝石代码块。我收到错误“针对“ / projects / 11 / steps / 4”的未定义方法`stringify_keys':字符串”。当我摆脱do和end时,代码将起作用。如何将一个do添加到link_to?

    <%= link_to 'Back', project_step_path(@project, @project.steps.count-1), :class => "btn btn-small" do %>

    <% end %>

Answers:


195

如果您使用的是块形式,link_to则不能包含文本内容(块就是您的文本内容)。您需要这样做:

<%= link_to project_step_path(@project, @project.steps.count-1), :class => "btn btn-small" do %>
  Back
<% end %>

通常,当您希望将图像或其他标签作为链接的内容时使用。它仅用于显示目的。该块将不会为您提供类似于javascript的功能,因此请确保您在这里寻找的是其他显示行为:)


4
这行得通,谢谢!一旦stackoverflow在11分钟内让我接受,我就会接受您的回答...
科学性,

谢谢!使用时slim是如此怪异的原因,因为您不必打开块。
igorgue '17

16

如果您传递了一个块,则不要传递链接名称。应该:

<%= link_to project_step_path(@project, @project.steps.count-1), :class => "btn btn-small" do %>
  Back
<% end %>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.