Ошибка Ruby On Rails не может преобразовать ноль в строку - PullRequest
0 голосов
/ 08 мая 2011

Я получаю сообщение об ошибке, не могу преобразовать ноль в строку. Вот мой код для контроллера, а также новые и незнакомые идеи и предложения относительно того, что может помочь исправить это?

class ShowDateTimeController < ApplicationController
  def display
    @title = "Some Project For Date and Time"
    @current_time = Time.now.asctime
    @current_time2 = Time.now
    t = Time.now
    @h= t.hour
    @m= t.min
    @s= t.sec
    @v= Time.now.strftime ("%B")

    t.hour.to_s

    if t.hour > 6 && t.hour < 18
      @img = "sun.jpg"
      @name = "Good Morning The Sun Is Up"
    else
      @img = "moon.jpg"
      @name = "Good Night The Moon Is Up"


      if Time.now.month == 1
        @img_month= "jan.jpg"
      elsif Time.now.month ==2
        @img_month = "feb.jpg"
      elsif Time.now.month ==3
        @img_month = "mar.jpg"
      elsif Time.now.month ==4
        @img_month = "apr.jpg"
      elsif Time.now.month ==5
        @img_month = "may.jpg"
      elsif Time.now.month ==6
        @img_month = "jun.jpg"
      elsif Time.now.month ==7
        @img_month = "jul.jpg"
      elsif Time.now.month ==8
        @img_month = "aug.jpg"
      elsif Time.now.month ==9
        @img_month = "feb.jpg"
      elsif Time.now.month ==10
        @img_month = "oct.jpg"
      elsif Time.now.month ==11
        @img_month = "nov.jpg"
      else
        @img_month = "dec.jpg"

Ошибка при просмотре на локальном хосте при попытке получить изображение из vaiable @img_month

image_tag @img_month, :class => 'img' <---- ошибка здесь да, я использовал rails delimeter <code><%=> но все равно есть ошибка

Ответы [ 3 ]

2 голосов
/ 08 мая 2011

Возможно, end отсутствует после вашего первого if:

    if t.hour > 6 && t.hour < 18
          @img = "sun.jpg"
          @name = "Good Morning The Sun Is Up"
    else
          @img = "moon.jpg"
          @name = "Good Night The Moon Is Up"
    end # <---- this one

Таким образом, @img_month не установлено в дневное время.

0 голосов
/ 08 мая 2011

Я предполагаю, что оно всегда проходит через t.hour > 6 && t.hour < 18 истинное условие, потому что если оно истинно, вы не устанавливаете переменную @img_month (поскольку переменная устанавливается только в другой части).img_month в верхней части вашего кода, перед условиями, со значением по умолчанию, решит вашу проблему.

Примечание: было бы лучше, если бы вы могли передать эти результаты логики представления помощникам.Просто передайте значение и напишите помощника для генерации ваших изображений.И попробуйте что-нибудь, предложенное @bassneck, так как оно более СУХОЕ.

0 голосов
/ 08 мая 2011

В вашем коде вы не устанавливаете переменную @img_month, если t.hour > 6 && t.hour < 18 истинно - тогда nil.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...