Render view depending on state

Hi all,

I have a list of events and when clicked an event you get detailed
info of the event. The detailed info actually depends on whether the
event has already occured or not. So if the event still has to happen
different content has to be rendered.

Is there a rails way on dealing with this or do I just use (in event/
show.html.erb):

if @event.starttime < Time.now
#render event way 1
else
#render event way 2
end

Thanks in advance
Stijn

On Jan 24, 2008, at 9:42 AM, Tarscher wrote:

if @event.starttime < Time.now
#render event way 1
else
#render event way 2
end

You can do at least three ways:

  1. make the decision in the controller and render one of two views with

render :template => ‘path_to/template’

  1. make the decision in a template and render one of two partials

<% if @event.starttime < Time.now %>
<%= render :partial => ‘past_event’ %>
<% else %>
<%= render :partial => ‘future_event’ %>
<% end %>

  1. As you said, make the decision in the template and put all
    rendering in the one file.

Personally, I’d probably go with #2.

Peace,
Phillip

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs