此代碼不會將預期值上載到數據庫。我期待如果2001年已經存在一個student_number值爲一個記錄有另一個列站點1(由site_id表示),那麼我們將student_number增加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到學生表中出現,會發生什麼? –