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.