RoR - 根据请求域获取博客提要

RoR - Fetch blog feed based on requesting domain

我有一个 Rails 应用程序在两个域上运行,domain1domain2。每个域都有自己的关联博客,分别为 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 使其从 domain1 指向 domain1blog 并从 domain2 指向 domain2blog

你可以

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