定義routes時有些參數可以用
1. defaults vs :name => value
最基本的就是 defaults, rails 會提供像這樣的預設值
:defaults => { :action => "index", :id => nil }
如果參數裡有預設值, 就不會秀出來在url 中
1.1 :name => value
如果沒給參數值的話, 這個才會有作用, 不過這會出現在url裡
2. :conditions vs requirement
conditions 相同才會進入該規則去跑, 才有機會跑到requirement
像conditions 就是做出 {:method => :post} 這樣的限定
requiremnet 則是用來要求參數要長怎樣, 符合怎樣的條件
url_for 取預設的原則是盡量採用已經有的, 還有改變較前面的參數, 就不提供較後面的參數
如果就是想改變前面後面不變, 可以使用overwrite_params,
傳入的controller name 如果以 "/" 開頭, 則會根據controller name 產生絕對路徑
傳入其他的則會是在當前url 下的 相對路徑
REST
add custom aciotn
collection => 像list , 抓群體的
member => 像show, 對單個的
new => 像new, 就是生新東西的
沒有留言:
張貼留言