Rails - Undefinierte Methode `stringify_keys '

78

Ich versuche, einen Ruby-Codeblock zu erstellen, wenn ein Benutzer auf die Schaltfläche "Zurück" klickt. Ich erhalte die Fehlermeldung "undefinierte Methode` stringify_keys 'für "/ projects / 11 / step / 4": String ". Der Code funktioniert, wenn ich das Do und End los bin. Wie füge ich einem link_to eine Aufgabe hinzu?

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

    <% end %>
wissenschaftlich
quelle

Antworten:

195

Wenn Sie die Blockform von verwenden link_to, können Sie keinen Textinhalt haben (der Block ist Ihr Textinhalt). Sie müssten dies tun:

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

In der Regel wird dies verwendet, wenn Sie Bilder oder andere Tags als Inhalt des Links haben möchten. Es ist nur zu Anzeigezwecken. Der Block bietet Ihnen keine Javascript-ähnliche Funktionalität. Stellen Sie daher sicher, dass Sie hier nach zusätzlichem Anzeigeverhalten suchen :)

nzifnab
quelle
4
das funktioniert, danke! Ich werde Ihre Antwort akzeptieren, sobald Stackoverflow mich in 11 Minuten lässt ...
wissenschaftlich
Vielen Dank! Wenn Sie das verwenden slim, ist das so seltsam, weil Sie den Block nicht öffnen müssen.
orgorgue
16

Wenn Sie einen Block übergeben, übergeben Sie den Linknamen nicht. Sollte sein:

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