看板 Ruby 關於我們 聯絡資訊
又有問題要問一下高手,關於controller內的method 小弟我用scaffold產生一個對應資料庫的簡單List頁面後 想要改controller裡面的def show 讓.find(params[:id])變成其他欄位 又拿圖書資料庫舉例..(library_controller.rb) 一個圖書資料庫schema主要有TITLE, ISBN兩個欄位好了 能否改掉預設以id這個AUTO_INCRE的欄位作為參照的方式 以ISBN或TITLE作為find的內容? 我把 def show中 @library= Libray.find(params[:id]) 這個預設的 params[:id]改成(params[:isbn]) 想要讓使用REST時 localhost:3000/library/show/{id} 這個method 可以變成直接以isbn查詢 .../show/{isbn} 結果失敗了 不知道我這方法可不可行? 或者還需要改那些地方才能辦到? 謝謝 --該不會只能用id這個pm_key作為show的參數吧? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.77.5
shelary:你搞錯那個id的意義了..那不是資料庫裡的id欄位 05/04 14:53
shelary:你也搞錯了 find 的用法了.. 05/04 14:53
godfat:merb 的 router 可以,rails 就我目前所知是不行 05/04 15:16
godfat:寫到現在我開始覺得 route 都應該用手刻才有彈性... 05/04 15:16
godfat:至於 AR 的部份,set_primary_key, 不過不確定是不是你要的 05/04 15:18
deduce:set_primary_key 可以 05/04 15:29
deduce: set_primary_key :isbn 05/04 15:29
dlackty:@library= Libray.find_by_isbn(params[:id]) 05/04 17:06