查看完整版本: ruby on rails 中 resources 產生的 helper?
頁: [1]

木紋 發表於 2015-2-13 02:14 AM

ruby on rails 中 resources 產生的 helper?

本帖最後由 木紋 於 2015-2-17 02:47 AM 編輯

/* 我不太確定這個問題是不是可以發在這個版? 如果錯了的話還請告知、也希望能告訴我要發在哪個版感謝 > < */

# 2015/2/17 被移到 "電腦程式設計" 這個版,感謝管理人的幫忙


如題,我用的是 codecademy 裡面的 rails 架站教程

結束了基本的CRUD,但我想知道一些更細節的東西:



像是,以 C (create/new) 來說

我在controller 裡面就要定義兩個function(分別是new和create)

在view裡面用的 hepler 是  link_to

後面接的參數有兩個,第一個事要顯示的東東

第二個是 new_category_path

我完全不知道這個 new_category_path 是從哪裡來的


同樣的,以 U (update/edit) 來說

controller裡面也要定義兩個 function (為edit和update)

view裡的helper也是用link_to

第二個參數下的是 edit_category_path(class_variable)

我也完全不知道這個 edit_category_path(class_variable) 是從哪裡來的






在routes.rb 裡面,如果沒下 recources('controllerName')


就不會有這些我完全不知道從哪裡來的helper可以用、當然CRUD也不能執行


只是,我不喜歡這種 "可以動就好、管他為什麼" 的感覺..






有人能告訴我、有辦法能看到這些helper的module內容嗎?

又或是、link_to 到這些helper的時後,到底發生了什麼事呢?

感謝


...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

johnwanz 發表於 2015-2-13 10:58 AM

我沒學過, 但看了一下這個網頁, 不知道能否解決你的問題.
http://guides.ruby-china.org/routing.html

木紋 發表於 2015-2-13 03:08 PM

嗯嗯,這份我有看過、但沒看的很仔細
有寫到會返回該method、但

返回了edit、又是在哪邊繼續執行到 update 的呢?
或是返回了delete、又是在哪邊跳到 destroy 的呢?

我用git去檢查整個專案的變動、發現用resources的時後並沒有新增或修改除了routes.rb以外的任何檔案
說不定根本沒有產生helper也說不定= =

longbest 發表於 2015-2-13 11:29 PM

而你所問的這些都是 rails 框架的慣例特性
因為很多功能在框架內都有寫好了
你沒寫並不代表框架什麼事情都沒有做
建議可以多看幾次 https://ihower.tw/rails4/ 的線上電子書
真有興趣還可以去研究 rails 的原始碼
也可以參加各地的 ruby / rails 的社群聚會,相信會有很多收穫

木紋 發表於 2015-2-14 03:04 AM

我剛剛才發現實戰聖經的網址開頭是 "ihover"...
他曾經神乎其技地解決了我rails 的問題 = =

了解了,我覺得我還是先把教程都先做個幾遍後、
還有問題再一次發問吧 0w0

感謝<br><br><br><br><br><div></div>

poqlll 發表於 2015-2-14 11:51 AM

本帖最後由 poqlll 於 2015-2-14 11:54 AM 編輯

new_category_path
edit_category_path
這些都是因為你在route.rb裡頭寫了resources :categoriesrails自動幫你產生的dynamic method

這是ruby on rails的設計原則:
慣例優於設定(convention over configeration)
快速實做出專案雛型(rapid development)

剛接觸rails會不太習慣這個部份
所以你會覺得什麼事都沒做就可以動

除非你想要去深入研究或是維護rails framework
不然不需要去看他怎麼幫你產生
ruby/rails的生態圈就是盡可能重用別人已經寫好的元件(rubygem)
要製造一台車子(web application), 有現成的車輪(rubygem)可以使用, 就不要重複造車輪

用久了rails你會愛上它的
如果你基礎打實了
有興趣深入rails內部
可以閱讀Crafting Rails 4 Applications (它出了兩版, 第一是介紹rails 3)...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

木紋 發表於 2015-2-15 03:50 AM

噢噢我知道這是它產生的method
只是我不知道這個method到底坐了什麼事情@@

最搞不懂的部分、
就是為什麼我連的明明是 new_category_path
執行完controller裡的new function後、會自動執行 crete function 這部分

想說在剛開始學習的時候、我還是知道一下該怎麼做輪子比較好這樣@@
頁: [1]