If you make the requirement to be always cached or never cached then I see us
having more options.
#the partial can worry about how to render itself; keep the main view clean.
<%= render :partial => "job" %>
# _job.html.erb -- you could optionally wrap this in in a cache block
<p class="title"><%= job.title %></p>
<p class="location"><%= job.location %></p>
<p><%= job_time(job) %></p>
<p><%= job.published_at %></p>
#job_helper.rb
def job_time(job)
if job.published_at > 5.days.ago
distance_of_time_in_words(DateTime.now, job.published_at)
else
job.published_at
end
end
Luke
On 2010-10-20, at 8:37 AM, Colin Law wrote:
> On 20 October 2010 15:49, Luke Cowell <[email protected]> wrote:
>> Hi Colin, can you please explain ?
>
> In the OPs original post he has two ways of rendering job.published_at.
> For the case where it is recent
> <%= distance_of_time_in_words(DateTime.now, job.published_at) %>
> and otherwise just
> <%= job.published_at %>
>
> Colin
>
>>
>> Luke
>>
>> On 2010-10-20, at 12:44 AM, Colin Law wrote:
>>
>>> On 20 October 2010 03:03, Luke Cowell <[email protected]> wrote:
>>>> 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 think that does not provide the required alternative versions for
>>> display of published_at.
>>>
>>> Colin
>>>
>>>>
>>>>
>>>> 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 [email protected].
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected].
>>>>> 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 [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected].
>>>> 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 [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> 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 [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> 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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.