Rails - невизначений метод `stringify_keys '


80

Я намагаюся створити блок рубінового коду, коли користувач натискає кнопку "Назад". Я отримую помилку "невизначений метод` stringify_keys 'для "/ projects / 11 / steps / 4": String ". Код працює, коли я позбавляюся від do і end. Як додати дію до link_to?

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

    <% end %>

Відповіді:


199

Якщо ви використовуєте блок-форму, у link_toвас не може бути текстового вмісту (блок - це ваш текстовий вміст). Вам потрібно зробити це:

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

Зазвичай це використовується, коли ви хочете, щоб зображення або інші теги були вмістом посилання. Це суто для демонстрації. Блок не надасть вам функціональності, подібної до JavaScript, тому переконайтеся, що додаткова поведінка на дисплеї - це те, що ви шукаєте тут :)


4
це працює, дякую! Я прийму вашу відповідь, як тільки stackoverflow дозволить мені через 11 хвилин ...
scientiffic

Дякую! При використанні slimтакої дивної причини вам не потрібно відкривати блок.
igorgue

16

Якщо ви передаєте блок, тоді не передайте ім'я посилання. Має бути:

<%= link_to project_step_path(@project, @project.steps.count-1), :class => "btn btn-small" do %>
  Back
<% end %>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.