Tip 1. 默認情況下,Rails認為類名是單數,表明是復數形式。
如果你不喜歡這樣的行為可以在配置文件(config/environment.rb)中設置一個全局標識來禁用它。
ActiveRecord::Base.pluralize_table_names = false
Tip 2.默認情況下,ActiveRecord會使用推導表明的算法,如果你不希望使用此算法可以在指定的model中使用 "set_table_name" 方法,例如:
class Sheep < ActiveRecord::Base
?set_table_name "sheep"
end
Tip 3.SQL 類型和Ruby 類型之間的對應關系可能會在 decimal 類型的精度上出現問題。SQL的 demimal,numeric,float,double 都對應 Ruby 的 Float??梢允褂镁酆蠈ο?composed_of 對字段進行處理。?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Tip 4.ActiveRecord會盡量的把從數據庫中獲取的值轉換為Ruby的類型(譬如說,假設數據庫字段是 timestamp 類型的,就會返回 Time 對象)。如果你希望得到一個屬性的原始值,可以在屬性名稱后面加上 _before_type_cast.
Tip 5.Ruby 認為:除了 nil 和 false 之外的所有值都被解釋為 true。所以,如果要查詢一個 boolean 型字段的狀態,就必須在字段名的后面加上一個問號:
user = User.find_by_name("Dave")
if user.superuser? # 不可以使用 user.superuser,否則不論數據庫中存儲的是數字 0、字符串 f 還是德語的 N,此條件都將成立。
?grant_privileges
end