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 %>

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 :)


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 %>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.