Этот код не загружает заданное значение в базу данных. Я ожидал, что если 2001 уже существует как значение student_number для записи, у которой есть другой сайт-столбец 1 (представленный site_id), то мы увеличиваем число учеников на 1, поэтому следующее значение student_number для этого сайта будет равно 2002 и следующее значение 2003 и так на. Однако, по какой-то причине здесь, если 2001 существует, он просто возвращает значение 1, а затем для следующей записи, созданной, она возвращает значение 1 раз и так далее:, увеличивая значение одного столбца на основе значения другого столбца
Студенческая модель:
def test!
update_attributes :updater_id => User.current_user.id,
:student_number =>
sitenum = self.site_id
count = Student.count_by_sql("SELECT MAX(student_number) FROM students WHERE site_id = #{sitenum}")
if count >= 2001
Student(:condition => { :site_id => sitenum },
:order => "student_number DESC").student_number + 1
else
2001
end
end
Студенты контроллер:
def test_finalize
if @student.update_attributes(params[:student]) && @student.test!
@student.save
end
end
Любая идея о том, как увеличить его на 1, если существует 2001? Спасибо за любые предложения.
и что произойдет, если INSERT в таблицу студентов происходит во время? –