分析一下这代码吧!

分析一下这代码吧!

@@blog_id_for = Hash.new

 # The Blog object for the blog that matches the current request. This is looked
 # up using Blog.find_blog and cached for the lifetime of the controller instance;
 # generally one request.
 def this_blog
  @blog ||= if @@blog_id_for[blog_base_url]
      Blog.find(@@blog_id_for[blog_base_url])
     else
      returning(Blog.find_blog(blog_base_url)) do |blog|
      @@blog_id_for[blog_base_url] = blog.id
      end
     end
 end
 helper_method :this_blog

 # The base URL for this request, calculated by looking up the URL for the main
 # blog index page. This is matched with Blog#base_url to determine which Blog
 # is supposed to handle this URL
 def blog_base_url
  url_for(:controller => '/articles').gsub(%r{/$},'')
 end

这代码有什么用,哪位大侠来分析一下?
cclong同学很认真学习哦,总是提问题。
补充:cclong这丫很笨,很简单的东西都不会,都要来问:-(
这段代码没有太大难度,可能下面用到的两个知识点,不是很好理解,我解释下:

一: ||=

[Copy to clipboard] [ - ]
问题是,我还不知道他这代码有什么作用。。。。

def blog_base_url
  url_for(:controller => '/articles').gsub(%r{/$},'')
 end

这个是基本单元是吧,这个url(for:controller => '/articles')是生成URL是吧,那么又将他的什么内容转铁为 ' ' 呢?
就像主页的URL是这样的(在我机) 127.0.0.1:3000/articles
%r{/$}是正则表达式
"a/b/".gsub(%r{/$},'')
会变成"a/b"
也就是末尾的/会被替换掉.
引用:
原帖由 cclong 于 2007-10-22 17:36 发表
问题是,我还不知道他这代码有什么作用。。。。

def blog_base_url
  url_for(:controller => '/articles').gsub(%r{/$},'')
 end

这个是基本单元是吧,这个url(for:controller => '/articles')是生 ...
学习....................


[Copy to clipboard] [ - ]