RoR - 根据请求域获取博客Feed

时间:2015-03-26 00:24:37

标签: ruby-on-rails ruby-on-rails-3 multiple-domains dynamic-url

我有一个在两个域domain1domain2上运行的Rails应用程序。每个域都有自己的关联博客domain1blogdomain2blog。目前,我有一个模型可以获取其中一个博客:

require 'rss'
require 'open-uri'

class Blog

BLOG_URL = 'http://feeds.feedburner.com/domain1blog?format=xml'
POST_LIMIT = 2

def self.fetch_entries
  Rails.cache.fetch('blog', expires_in: 10.minutes) do
    posts = []

    begin
      open BLOG_URL do |rss|
        feed = RSS::Parser.parse(rss)
        posts = feed.items.slice 0...POST_LIMIT
      end
    rescue OpenURI::HTTPError
    # Ignore silently.
    end

    posts
  end
end

end

现在,此模型从domain1blog获取内容,而不管进行调用的域。

如何设置BLOG_URL,使其从domain1blog domain1domain2blog domain2指向{{1}}?

1 个答案:

答案 0 :(得分:0)

你可以

  • 使用数据库中的(预定义)Blog字段创建url个实体,这意味着您的fetch_entries方法将开箱即用(尽管作为实例方法)
  • 或使用ActionDispatch::Http::URL.domain
  • 在控制器中提取域名