NoMethodError / undefined метод - PullRequest
       5

NoMethodError / undefined метод

1 голос
/ 06 февраля 2010

Я продолжаю получать: NoMethodError в StudentsController

undefined method `id_num=' for #<Array:0x105adcc98>

Я уверен, что в таблице есть id_num, и это происходит в контроллере:

Контролер студентов:

def student_test
@student = Student.find(params[:id]) if params[:id]
@student ||= Student.new
run_sequence :testize
end

def test_finalize
Student.transaction do
if @student.update_attributes(params[:student]) && @student.test! 
x = @student.site_id
y = @student.testing_id
book = Book.find(:all, :conditions => ["location_id = ? AND testing_id = ?", x, y])

room = Room.new(:room_num => 5)
room.save

book.id_num = room.id #error occurs here. Book.new would work. But I need to do a find.
book.save
end
end

Это может показаться немного запутанным, но потому что, когда тест! метод вызывается в модели Student, студенту будет назначен test_id, я не могу выполнять условие между учеником и книгой, пока ученику не будет назначено случайное значение testing_id. Так что книга должна быть идентифицирована после теста! Это почему находка делается там.

1 Ответ

7 голосов
/ 06 февраля 2010

Когда вы вызываете Book.find (: all), он возвращает массив книг. Затем вы пытаетесь установить id_num для этого массива (и массив, конечно, не имеет такого свойства); по-видимому, вы просто хотите найти одну книгу и установить id_num для этого. Может быть, вы просто хотите Book.find (: first)?

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