Форма, передающая String вместо Float - PullRequest
0 голосов
/ 25 октября 2011

У меня есть метод before_save на модели, который делает некоторые вычисления с 2 атрибутами, когда я отправляю свою форму, я получаю ошибку:

TypeError in AntropometricasController#create

can't convert String into Integer

Я использую ruby ​​1.9.2 и rails 3.0.9

РЕДАКТИРОВАТЬ: Решил эту проблему, удалив before_save и запустив метод в действии create (не знаю, правильно ли это):

@evaluation.calc_imc(@evaluation.value1.to_f,@evaluation.value2.to_f)

В моей модели метод:

attr_accessor :imc
def calc_imc(value1,value2)
  imc = value1/(value2*value2)
end

Но мой evaluation.imc - ноль.Я хочу отобразить это значение в представлении, что я делаю неправильно?

ОБНОВЛЕНИЕ: Решил мою проблему, я использовал @evaluation.calc_imc(@evaluation.value1.to_f,@evaluation.value2.to_f), просто перешел в представление, и это сработало

1 Ответ

0 голосов
/ 25 октября 2011

Похоже, что присвоение значения imc может определять локальную переменную вместо присвоения значения свойству объекта.

Просто замените imc = value1/(value2*value2) на self.imc = value1/(value2*value2):

def calc_imc(value1,value2)
  self.imc = value1/(value2*value2)
end
...