2010-01-30 49 views
4

不確定下劃線(student_state)和表格大小(student_states)之間的差別是多少。但是,不知道如何以不同的方式使用 。顯然,你可以使用tableize參考 數據庫中的表名。但是,下劃線提供了哪些不同的功能,例如,當您看到以下情況時:student_state相比:用作符號時的student_states。感謝您的建議。軌道中的表格和下劃線之間的區別

回答

10

tableize將複數化您的字符串,無論原始單數還是複數,而underscore只會添加下劃線。

雖然這可能看起來微不足道,但都是關於從開發人員處抽取數據庫實現的細節。如果在這條路上,Rails開始以不同的方式格式化表名,唯一需要更改的方法是tableize。引用表名的Rails代碼中的所有其他地方可以保持不變,因爲它們仍然調用tableize方法。因此,軌道底層結構的改變受到限制,損害程度要小得多。

這在計算機科學中被稱爲「正交性」。現在你知道它是什麼意思了,試着把它放在談話中,讓自己看起來更聰明。它對我有用嗎? :)

+0

是否有任何不同的功能?例如,表名應該是複數。該表格將映射到具有相同名稱但以單數形式的Model對象。是否有理由隨時調用複數形式和其他單數化的東西? – JohnMerlino 2010-01-30 12:58:51

+0

例如,如果您有一個名爲StudentState的模型,並且您使用了下劃線Student_State,然後將Student_States分頁。你用前者調用方法,後者用數據庫檢索嗎? – JohnMerlino 2010-01-30 13:28:02

+0

其實,它會是「student_states」小寫。下劃線方法都是下劃線和下劃線,因爲它實際上與camelize相反,它會將下劃線字符串轉換爲「camelcase」。如果您剛接觸rails,則不需要關注這些方法,因爲它們用於元編程。例如,如果你正在編寫一個插件,你可能需要將一個類名轉換爲一個表名,等等。 – 2010-01-30 16:37:59

相關問題