状态对象一次并检索多个属性

时间:2012-03-28 01:22:03

标签: ruby sinatra

以下是Sinatra应用程序的片段,用户将在其中提交网址。我必须确保将http://添加到网址前面,以便在我的应用程序之外进行路由。我如何陈述site一次并访问它的属性? (第3行)

  p.params= "www.ruby-lang.org/en/"
  site = URI(p.params[:url])
  site = "http://" + site.host + site.path + site.query 

1 个答案:

答案 0 :(得分:1)

如果您需要确保网址以http://开头,为什么不使用正则表达式?

p.params = "www.ruby-lang.org/en/"
site = p.params.gsub(/^(­?!http:\/\­/)/, "http­://")
# site = http://www.ruby-lang.org/en/
仅当字符串的开头不是后跟^(­?!http:\/\­/)

时,

http://才会匹配