Ruby';至';功能是什么?

Ruby';至';功能是什么?,ruby,sinatra,Ruby,Sinatra,请原谅这个非常基本的问题,但我不是Ruby程序员,我需要理解一行Ruby代码: redirect to('/') 重定向来自Sinatra,我理解它的功能,但“to”是一个非常常见的词,无论我如何尝试谷歌这个功能,我都找不到它。导入以下模块: require 'cgi' require 'sinatra' require 'gollum' require 'mustache/sinatra' require 'useragent' require 'stringex' 如果需要的话,我设法找

请原谅这个非常基本的问题,但我不是Ruby程序员,我需要理解一行Ruby代码:

redirect to('/')
重定向来自Sinatra,我理解它的功能,但“to”是一个非常常见的词,无论我如何尝试谷歌这个功能,我都找不到它。导入以下模块:

require 'cgi'
require 'sinatra'
require 'gollum'
require 'mustache/sinatra'
require 'useragent'
require 'stringex'
如果需要的话,我设法找到了一个或多个方法。

方法是,它的别名(也可用)为
url
to
。它根据给定的参数创建一个绝对url

因此,只有Sinatra提供的可读方法名。

该方法是,它的别名(也可用)为
url
to
。它根据给定的参数创建一个绝对url


因此,只有Sinatra提供的可读方法名。

它不是标准的ruby函数,它可能是由Sinatra之类的框架定义的DSL函数。看:

这不是一个标准的ruby函数,它可能是一个由sinatra等框架定义的DSL函数。看:

你可以在

浏览器重定向 可以使用重定向帮助器方法触发浏览器重定向:

get '/foo' do
  redirect to('/bar')
end
任何其他参数都像传递给halt的参数一样进行处理:

redirect to('/bar'), 303
redirect 'http://google.com', 'wrong place, buddy'
您还可以使用重定向返回功能轻松重定向回用户所在的页面:

get '/foo' do
  "<a href='/bar'>do something</a>"
end

get '/bar' do
  do_something
  redirect back
end
或使用会话:

enable :sessions

get '/foo' do
  session[:secret] = 'foo'
  redirect to('/bar')
end

get '/bar' do
  session[:secret]
end

你可以在网站上找到很多信息

浏览器重定向 可以使用重定向帮助器方法触发浏览器重定向:

get '/foo' do
  redirect to('/bar')
end
任何其他参数都像传递给halt的参数一样进行处理:

redirect to('/bar'), 303
redirect 'http://google.com', 'wrong place, buddy'
您还可以使用重定向返回功能轻松重定向回用户所在的页面:

get '/foo' do
  "<a href='/bar'>do something</a>"
end

get '/bar' do
  do_something
  redirect back
end
或使用会话:

enable :sessions

get '/foo' do
  session[:secret] = 'foo'
  redirect to('/bar')
end

get '/bar' do
  session[:secret]
end

ruby方法
alias
alias
uri
to
to
并按照注释中的广告执行

# lib/sinatra/base.rb
# Generates the absolute URI for a given path in the app.
# Takes Rack routers and reverse proxies into account.
def uri(addr = nil, absolute = true, add_script_name = true)
  return addr if addr =~ /\A[A-z][A-z0-9\+\.\-]*:/
  uri = [host = ""]
  if absolute
    host << "http#{'s' if request.secure?}://"
    if request.forwarded? or request.port != (request.secure? ? 443 : 80)
      host << request.host_with_port
    else
      host << request.host
    end
  end
  uri << request.script_name.to_s if add_script_name
  uri << (addr ? addr : request.path_info).to_s
  File.join uri
end

alias url uri
alias to uri
#lib/sinatra/base.rb
#为应用程序中的给定路径生成绝对URI。
#考虑机架路由器和反向代理。
def uri(addr=nil,absolute=true,add\u script\u name=true)
如果addr=~/\A[A-z][A-z0-9\+\.\-]*,则返回addr:/
uri=[host=”“]
如果绝对

托管ruby方法
alias
alias
uri
to
to
to
,并按照注释中的广告执行

# lib/sinatra/base.rb
# Generates the absolute URI for a given path in the app.
# Takes Rack routers and reverse proxies into account.
def uri(addr = nil, absolute = true, add_script_name = true)
  return addr if addr =~ /\A[A-z][A-z0-9\+\.\-]*:/
  uri = [host = ""]
  if absolute
    host << "http#{'s' if request.secure?}://"
    if request.forwarded? or request.port != (request.secure? ? 443 : 80)
      host << request.host_with_port
    else
      host << request.host
    end
  end
  uri << request.script_name.to_s if add_script_name
  uri << (addr ? addr : request.path_info).to_s
  File.join uri
end

alias url uri
alias to uri
#lib/sinatra/base.rb
#为应用程序中的给定路径生成绝对URI。
#考虑机架路由器和反向代理。
def uri(addr=nil,absolute=true,add\u script\u name=true)
如果addr=~/\A[A-z][A-z0-9\+\.\-]*,则返回addr:/
uri=[host=”“]
如果绝对

主机我正在查看Sinatra API文档,但我没有找到它,因为我不知道别名。谢谢我正在查看Sinatra API文档,但没有找到它,因为我不知道别名。谢谢