2010-06-17 2 views
0

У меня есть эта структура для курса таблицы:Получение цикла при использовании link_to: назад

Страница поиска -> Страница результатов -> Edit Page -> Показать страницу

Когда я перейти от страницы результатов к страницу редактирования конкретного курса, я редактирую ее и заканчиваю на странице показа, но когда я ударяю назад, я получаю цикл из шоу для редактирования и обратно, чтобы показать и так далее.

Я хочу, чтобы страница редактирования вернулась к странице результатов, если она появилась.

им с помощью этого на обоих:

<%= link_to "Back", :back %> 

ответ

3

Когда вы на самом деле обновить ваши записи отредактировав его, вы, вероятно, будете делать редирект с действием обновления с помощью запроса пут, чтобы показать. Даже если это не так, и если вы нарушаете соглашение и обновляете действие шоу, вы пытаетесь перейти к сообщению с запросом на получение. Если я правильно вас понимаю, вы хотите иметь возможность редактировать либо результат поиска, либо страницу показа. То, что вы должны сделать, это определить метод, который позволяет вам хранить местоположение в сеансе по требованию. Поместите его в контроллер приложения, и он будет доступен для всех ваших контроллеров.

# copy this into your application_controller.rb file : 
private 
def store_location 
    session[:return_to] = request.request_uri 
end 

#copy this to the top of your item_controller.rb file: 
before_filter :store_location, :only => [:search, :show] 

#replace your <%= link_to "Back", :back %> with 
<%= link_to 'back', session[:return_to] -%> 
+1

Вы хотели 'request.env [ 'HTTP_REFERER'] \t' вместо 'request.request_uri'. И также можно использовать 'session [: return_to] || url_for (: back) 'в' link_to', поэтому есть резерв в случае, если произойдет что-то странное. – shmichael

+0

Я пробовал простую часть вашего объяснения, заканчивая тем же результатом, вероятно, что-то не так, так как я немного смутился с объяснением xD. Я бы хотел, чтобы он работал как стек, поэтому, когда я пришел из поиска, я редактирую, заканчиваюсь на странице показа, а затем, когда я ударяю назад и снова возвращаюсь, я заканчиваю результат поиска. И удалите ссылку редактирования на странице показа, чтобы уменьшить проблемы. – onildo

+0

На самом деле есть только одно объяснение, и вам нужно будет все, что я объяснил. Я добавлю некоторые комментарии к моему ответу. :) – mark

Смежные вопросы