Кэширование страниц для каждого домена в Rails - PullRequest
2 голосов
/ 18 февраля 2009

У меня есть приложение, в котором размещено несколько учетных записей, каждая из которых сопоставлена ​​с собственным доменом.

Я хочу определить разные каталоги кэширования страниц для каждой учетной записи.

У меня есть это в моем контроллере приложений (до фильтра):

self.page_cache_directory = RAILS_ROOT+"/public/cache/" + @account.name

Но это кажется неправильным, потому что оно эффективно перезаписывает переменную page_cache_directory для ActionController :: Base (это cattr_accessor), что является проблемой при одновременных запросах.

Есть ли лучший способ?

1 Ответ

2 голосов
/ 18 февраля 2009

Попробуйте в вашем контроллере приложения:

def the_before_filter
  @account = Account.find(...)
  (class << self; self; end).instance_eval { define_method :cache_page do |content, path|
     super content, @account.name + path
  end
  }
end

ресурсы:

http://whytheluckystiff.net/articles/seeingMetaclassesClearly.html

http://blog.jayfields.com/2007/10/ruby-defining-class-methods.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...