Rails學習筆記(二)

2021-08-25 01:42:44 字數 1463 閱讀 1903

1:在啟動web伺服器時,可以通過加上-e選項,指定啟動時選用哪個環境

ruby script/server -e development | test | production

2:rails裡強調「慣例重用配置」,從資料庫中的表,到控制器,到模型,再到檢視,命名是有關聯的!檔案的存放路徑也是有關聯的。我們在命名和存放檔案時需要遵守這種慣例。一旦我們遵守了這種慣例這四者之間的對映都是rails自動替我們去完成的,這也是rails為何能「敏捷」的重要原因。

endrails的生成器很智慧型,你可以直接使用

ruby script/generate controller admin::book action1 action2

4:rails用activerecord來處理物件-關係對映(orm)。資料庫中的一張表對應著模型中的乙個類,表名是小寫的,多單詞用下劃線分隔,而且是複數形式。對應的類名是單詞首字母大寫來進行分隔的,而且是單數形式。表中的字段直接對映成類的屬性,除此之外,我們還可以給類再另外新增一些屬性。表名和類名是通過命名慣例去自動對應的,(rails對ruby的字串類進行了擴充套件,讓它直接支援單複數之間的轉變,例如 puts "cat".pluralize    #=>cats         puts "cats".singularize #=>cat),僅管pluralize和singularize方法已經很智慧型了,能處理child和children這樣的單複數轉換,但它仍然還是有缺陷,例如sheep會對應到sheeps。我們可以在模型類中,cefpset_table_name去顯示地指明對應的表,而不使用預設的慣例。

class sheep < activerecord::base

set_table_name "sheep"

end5:activerecord從表中取出值,變成類的物件時,會自動將資料庫中的型別轉換成ruby支援型別。如果你希望得到乙個屬性的原始值,可以在屬性名稱後面加_before_type_cast。

account.balance_before_type_cast

6:布林型的資料在轉換的時候會有些麻煩,有些資料庫是不支援布林型的,所以我們在工作中,可以使用0,1這樣的數字來代表布林值的真假,而ruby中只有false和nil為假,0其實是為真的。所以在資料庫對映到類時,我們要判斷某個屬性的真假時,記得要加乙個?號,這個是rails為解決布林型問題而設定的。

if user.superuser?

dosomething

end7:主鍵。一般來說,rails都會用id作為每張表的主鍵,但表並不是由我們自己來建的,可能表會用別的字段作為主鍵。我們可以用set_primary_key來顯示地指定主鍵字段。

class badbook < activerecord::base

set_primary_key "isbn"

end但需要注意的是,既然指定主鍵為其它字段,但在訪問時,仍然可以通過名為id的屬性來設定主鍵值,也就是說,只要使用activerecord,主鍵欄位在物件中的屬性名稱就永遠都是id。

Rails學習筆記(四)

1 rails內建了很多驗證,在提交表單時,可以直接使用rails提供的驗證。rails中關於程度和資料庫的連線環節是在model裡的,在model裡使用validates x of可以完成常用的驗證。常用的有 1 validates presence of 用於驗證非空 輸入空格也算空 2 val...

Rails 架構學習筆記

rails給web應用的結構上強加了很多約束,而正是這些約束使得應用的開發變得很容易。也許是因為無規矩不成方圓,也許是因為規定好了道路是的開發者不用在選擇面前糾結和徘徊,也許是從框架上植入了最佳實踐,是的新手不那麼容易犯前人的錯誤。size medium color blue models,view...

Rails學習筆記 新增Font awesome

參考網上寫法新增font awesome 首先在gemfile中新增 gem font awesome rails require font awesome和 import font awesome 發現還是會有報錯 我的解決辦法 在gemfile中將font awesome rails改為font...