Re: [Rails] Cache on certain condition
How about something like this:
<% if job.published_at > 5.days.ago %> #credit to Colin for catching this
<%= render :partial => "job" %>
<% else %>
<% cache job %>
<%= render :partial => "job" %>
<% end %>
<% end %>
# _job.html.erb
<p class="title"><%= job.title %></p>
<p class="location"><%= job.location %></p>
<p><%= job.published_at %></p>
I'd also look at turning the logic on that first line into a method
def recently_published?
job.published_at > 5.days.ago
end
Luke
On 2010-10-19, at 2:00 PM, Greg Ma wrote:
> Hi,
>
> I want to cache objects only if they were published at least 5 days ago.
> He is the code I've done, but I don't like because it is not dry...
> How could I improve it?
>
> <% if job.published_at < 5.days.from_now %>
> <p class="title"><%= job.title %></p>
> <p class="location"><%= job.location%></p>
> <p><%= distance_of_time_in_words(DateTime.now, job.published_at)
> %></p>
> <% else %>
> <% cache job %>
> <p class="title"><%= job.title %></p>
> <p class="location"><%= job.location %></p>
> <p><%= job.published_at %></p>
> <% end %>
> <% end %>
>
> Greg
>
> --
> Posted via http://www.ruby-forum.com/.
>
> --
> You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
> To post to this group, send email to rubyonrails-talk@googlegroups.com.
> To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
>
--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home