Как передать лямбду в link_to - PullRequest
0 голосов
/ 17 октября 2011

Я хотел бы использовать лямбду в качестве параметра для link_to для кода ниже: edit.html.erb

<h2>Edit customer info</h2>

<%= render 'form' %>

<%= link_to(@return_to) do %>
  Back
  step_back()
<% end %>

Вот определение для step_back:

  #return link for previous page in page step
  def step_back
    session[:page_step] -= 1
  end

Проблема с кодом выше заключается в том, что step_back () выполняется, как только загружается edit.html.erb.На самом деле step_back должен выполняться только тогда, когда пользователь нажимает ссылку Back.Я полагаю, что только лямбда может сделать это.

Есть мысли?

Ответы [ 2 ]

0 голосов
/ 16 ноября 2011

См. О написании вашей функции step_back () в javascript и присоединении ее к атрибуту html onClick в теге вместо использования хелпера link_to rails

Затем также .preventDefault () событие с javascript, если вы не хотите, чтобы ссылка куда-либо переходила, или на "#"

Это позволит коду исполняться в событии click в браузере, а не во время компиляции ресурсов перед обслуживанием страницы.

0 голосов
/ 17 октября 2011

Ваши возможности ограничены, так как вы взаимодействуете с сеансом.

Вы получаете это @return_to откуда-то; Вероятно, было бы проще вызвать действие, которое получает те же данные и перенаправляет их, и выполняет те же манипуляции с сеансом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...