本篇的三大綱要
基本功能
第一個表單
新增文章
在Blog要先創造resource類(像是animals、articles都是當中之一),而resource是類似物件的集合,
接著有可執行項目create,read,update,destroy(CURD)。
首先,在config/router.rb中,
加入“resources:articles”
接著,輸入http://localhost:3000/articles/new,
首先出現,沒有controller對應的錯誤,所以得創一個controller,
rails g controller articles,
下一個,會出現錯誤,顯示在controller中,沒有action:new。
然後,我們在controller增加
def new
end
接著,又出現一個錯誤,
首先,缺少的就是articles/newtemplate,Rails 一開始會試著尋找這個相對應的 template ,
如果找不到才會試著載入另一個名為application/new的 template
第二 、:locale決定語系,[:en]就是english
第三、formats: 就是回覆給使用者的格式,這邊就是html
第四、template handler把template render出來,其中 erb最常用於html
就已new.html.erb為例,
html就是format的名稱
erb就是用啥handler來處理
5.2開始第一個表單
在使用form_for時,得傳遞一個物件identifier object給這個表單。
在本例子中,這個物件就是用 symbol:article表示
而因為new之後,url會變更,所以得加上一行 “url:articles_path"
5.3 新增文章:
在新增文章的部分加入action:create,
出現了像是之前的missing template
但這裡不同的是,create action還得存取使用者資料,所以用到parameter(參數)的概念,
def create
render plain: params[:article].inspect
end
上述意味,使用key為plain,value是params[:article].inspect的hash,
此外,在parameter的method有一些例子,
http://www.example.com/?username=dhh&email=dhh@email.com
從此url得知,params[:username]=“dhh” and params[:email]=“dhh@email.com"
而再次按下輸入鍵後,會出現以下畫面
{"title"=>"First article!","text"=>"This is my first article."}