параметры не извлекают ничего, переданного в erb

#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, чтобы узнать, какие значения передаются в параметрах