Строка не будет отображаться - PullRequest
1 голос
/ 15 апреля 2011

Я получаю значение bool в качестве параметра и присваиваю его переменной

@package = params[:package]

Теперь у меня есть метод, который должен возвращать строку на основе значения package.Метод выглядит следующим образом:

def get_description(package)
    if package == 1
      "foo"
    elsif package == 2
      "bar"
    end
  end

В другом методе я пытаюсь получить @description по:

@description = get_description(@package)

Проблема в том, что строка не отображается.Переменная @description остается пустой.Может быть, я слишком глуп, чтобы увидеть ошибку?

Ответы [ 2 ]

5 голосов
/ 15 апреля 2011

Если вы хотите, вы можете использовать свой код, изменяя значение пакета на целое число:

def get_description(package)
  package = package.to_i
  if package == 1
    "foo"
  elsif package == 2
    "bar"
  end
end

Или с помощью оператора case:

def get_description(package)
  case package.to_i
  when 1
    "foo"
  when 2
    "bar"
  end
end
3 голосов
/ 15 апреля 2011

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

Вам нужно будет преобразовать параметр в целое число или сравнить его со строками "1" и "2". * 1007.*

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