以下是index.html.erb中的代码:
<%= link_to 'Back', '/url_handler?url=@return_to&index=0' %>
以下是routes.rb中 以下是应用程序控制器中url_handler的代码: 问题是url_handler中的2个params不检索@return_to,并且在index.html.erb中传递了0。 @return_to在传递时具有有效值。 问题的任何解决方案?感谢。 match '/url_handler', :to => 'application#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
答案 0 :(得分:1)
<%= link_to 'Back', '/url_handler?url=@return_to&index=0' %>
应该是
<%= link_to 'Back', "/url_handler?url=#{@return_to}&index=0" %>
注意双引号和return_to
检查日志文件log / development.log以查看在params中传递的值