#ruby-on-rails #ruby-on-rails-3.1
#ruby-on-rails #ruby-on-rails-3.1
Вопрос:
Вот код в index.html.erb:
<%= link_to 'Back', '/url_handler?url=@return_toamp;index=0' %>
Вот сопоставление для /url_handler в routes.rb:
match '/url_handler', :to => 'application#url_handler'
Вот код для url_handler в контроллере приложения:
def url_handler
url = params[:url]
index = params[:index]
if index == 1 then
step_forward(url)
elsif index == 0 then
step_back
end
redirect_to url
end
private
#record path to current page
def step_forward(current_path)
session[:page_step] = 1
session[('page' session[:page_step].to_s).to_sym] = current_path if session[:page_step] > 1
end
#return link for previous page in page step
def step_back
session[:page_step] -= 1
end
Проблема в том, что 2 параметра в url_handler не извлекают @return_to и 0, переданные в index.html.erb. @return_to имеет в нем допустимое значение при передаче.
Какие-либо решения проблемы? Спасибо.
Ответ №1:
<%= link_to 'Back', '/url_handler?url=@return_toamp;index=0' %>
Должно быть
<%= link_to 'Back', "/url_handler?url=#{@return_to}amp;index=0" %>
Обратите внимание на двойные кавычки и return_to
Проверьте свой файл журнала log/development.log, чтобы узнать, какие значения передаются в параметрах