До сих пор я никогда не вникал в удивительные методы кэширования, которые предоставляет Rails. Одна вещь, которую я действительно не могу обернуть вокруг себя, это как решить эту конкретную проблему.
Учитывая, что у меня есть модель блога с большим количеством сообщений:
class Blog < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
named_scope :published, :conditions => ["published_at < ?", Time.now]
end
И действие show в BlogsController показывает список опубликованных сообщений:
// BlogsController
def show
@blog = Blog.find(params[:id)
end
// View
<% @blog.posts.published.each do |p| %>
<h2><%=h p.title %></h2>
<%= simple_format(p.content) %>
<% end %>
Срок действия кэша должен истечь, когда будет выполнено какое-либо изменение атрибута publ_at, НО это также необходимо сделать, когда в будущем будет опубликовано значение updated_at и достигнуто это время.
Ребята, можете ли вы дать мне несколько идей и указаний о том, как лучше всего решить эту проблему? Крон-работа или я схожу с ума?