Simple IF Statement help please

Hi all, I am a newbie trying to solve a simple IF statement problem in my show view. The code below is all about the station attribute where it has data which is either 'NMC' or 'NMN'. I want the view to show 'by new mill central if 'NMC' is true, but this does not work well as sometimes it show the wrong paragraph someone please help thanks

[code] <p>   Station:   <% if @train_time.station = "NMC" == true %>   <p>By New Mills Central</p>   <% else %>   <p>By New Mills Newtown</p>   <% end %>
</p>

[/code]

Hi,

The following code seems to be more accurate to achieve what you want to do.

Station: <% if @train_time.station == "NMC" %>

   <p>By New Mills Central</p>
   <% else %>
   <p>By New Mills Newtown</p>
   <% end %>

Thanks & Regards, Dhruva Sagar.

Hi Mr Sagar,

Yesterday i tried the code you helped me with which was:

  @bus_time = BusTime.find(:first, :order => "time", :conditions => ["time

= ? AND weekday = ?", Time.now,Date::DAYNAMES[Date.today.wday]])

When this has to show 00:00:00 which is 12.00am it shows as nil and breaks my app. So in the view i did this @bus_time.time.strftime("%H:%M") unless @bus_time.time.nil?

How do I show 00:00:00

Dhruva Sagar wrote:

Hi,

Please tell me what values are you storing in the database for this ‘time’ field ?

If your storing just %H:%M:%S values then I think you should be using this as your find query :

@bus_time = BusTime.find(:all, :order => “time”, :conditions => ["time

= ? AND weekday = ?", Time.now.strftime(‘%H:%M;%S’), Date::DAYNAMES[Date.today.wday]])

So that the comparison is made appropriately in the SQL.

Thanks & Regards,

Dhruva Sagar.

BTW %H:%M:%S should show 00:00:00 time as well if that is what it is since %H is for 24 hour time and so on.

Thanks & Regards, Dhruva Sagar.

Hi Mr Sagar,

I ran that query in my console and it returned an array of times etc so i will post one line to you which is:

#<BusTime id: 97, weekday: "thursday", time: "2000-01-01 11:29:00", created_at: nil, updated_at: nil>

Dhruva Sagar wrote:

Hi Mr Sagar,

I ran that query in my console and it returned an array of times etc so i will post one line to you which is:

#<BusTime id: 97, weekday: "thursday", time: "2000-01-01 11:29:00", created_at: nil, updated_at: nil>

Dhruva Sagar wrote:

Terry6004 wrote:

There is no time of day class in ruby, the Time class (confusingly) includes the date, which seems to be set to 2000-01-01 if only a time of day is provided. Either you must cope with this in your application or you must store the time of day in some other form such as integer seconds into the day or as a string for example.

Colin

good taime iam maryam my phone has danger there is iran i not wey

In the create action of the controller where you create your bus_time record, I would suggest you to do this . Please change the following code as per your application code.

params[:bus_time][:time] = Date.parse(params[:bus_time][:time])

The above code will ensure that the appropriate Date is created from the input time (appending today’s date to it).

Secondly you need to get your query back to how it was with Time.now being used instead of what I had changed it to.

But in your view you should be doing @bus_time.time.strftime(‘%H:%M:%S’) if @bus_time.time.

That should output 00:00:00 appropriately when it is that.

Thanks & Regards,

Dhruva Sagar.

There is no worry about creation as all i am trying to do is to read information created from the database. I inputted the data via sql statements which was quicker as i have so many records I will not be creating any new records all I need to do is display it, but displaying all those records is proving to be difficult as there are so many records and scaffolding does is not appropriate for views I am getting:

monday time monday time monday time tuesday time tuesday time tuesday time

It is a nightmare....

Dhruva Sagar wrote: