2010-02-06 193 views
0

我得到一個sitenum未定義的方法錯誤。問題是我試圖以site_id和student_number爲目標,然後根據site_id將student_number的值增加1。因此,如果有兩個site_id(例如site_id 1,site_id 2),那麼至少會有兩條記錄的student_number值爲2001。如果2001年的值存在該網站,那麼我想通過1個爲該網站等下次student_number遞增將是2002年,2003年,等未定義的方法sitenum

學生型號:

: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.sitenum(:order => "student_number DESC").student_number + 1 
    else 
    2001 
    end 

任何反應會不勝感激。

回答

0

我的理解,從一個說明什麼,但是假設,你要這樣這樣:

: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 
+0

其實,這個返回每次1的值,如果2001已經存在的網站。我的意圖是,如果2001年已經存在,那麼每次創建該網站的新記錄時(例如2002,2003,2004等)都會增加。現在如果2001年存在,它只是返回1時間。 注意我必須使用Student.first,因爲Student(:condition)會返回一個錯誤,即Student不是一個方法。 – JohnMerlino 2010-02-06 20:30:28