RoR - 根据请求域获取博客提要
RoR - Fetch blog feed based on requesting domain
我有一个 Rails 应用程序在两个域上运行,domain1
和 domain2
。每个域都有自己的关联博客,分别为 domain1blog
和 domain2blog
。目前,我有一个模型可以获取其中一个博客:
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
我有一个 Rails 应用程序在两个域上运行,domain1
和 domain2
。每个域都有自己的关联博客,分别为 domain1blog
和 domain2blog
。目前,我有一个模型可以获取其中一个博客:
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