2014-04-17 4 views
-1

Чтобы предисловие к этому, я новичок в рубине и рельсах, но я сделал домашнее задание, и я действительно думал, что я делаю это правильно. Поэтому в моем контроллере rails я загружаю еще один класс под названием Input. Я хочу создать экземпляр класса Input, а затем вызвать calc_value.Неопределенная ошибка метода для метода экземпляра

foo = Input.new "foo", 10, 120 
render json: foo.calc_value 

Я знаю, что все нагрузки настроено правильно, и я знаю, что я могу правильно инициализировать Foo (я попытался рендеринга переменной само по себе, не вызывая calc_value). Но когда я вызываю calc_value, я получаю «неопределенный метод» calc_value для #.

Вот мой Входной класс:

class Input 
    def initialize (n = "", v = 0, m = 0) 
     @name = n 
     @value = v 
     @maxValue = m 
    end 

    def calc_value 
     @value 
    end 
end 

Я думал, что это было бы просто, и я снова и снова читать все о переменных класса и методов против переменных экземпляра и методы. Я нахожусь здесь на своем пути.

+4

Ничто из того, что вы здесь показали, не вызвало бы эту ошибку. Вы уверены, что все ваши работы сохранены? Загружается ли 'Input'? Если нет, попробуйте перезапустить сервер? –

+0

Я чувствую себя счастливым, что я делаю все правильно, и как дурак, чтобы исправить это было просто. Мне просто нужно было перезапустить сервер. Если бы я мог дать вам миллион куки прямо сейчас, я бы это сделал. Спасибо :) –

+0

Спасибо @PierreTasci. Хорошо, что вы не можете дать мне миллион куки, потому что я их съел. –

ответ

0

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

0

Это похоже на то, что ваше приложение-рельс не может найти способ, которым он считает, что он должен быть.

Где находится ваш класс? Место размещения пользовательских классов для Rails - это ваша папка lib/и вызывается после загрузки с использованием require. См. this answer для правильного типа настройки.