作者hellolucky (做自己 好自在)
看板Ruby
标题Re: [问题] 请教关於 RESTful and HTTP verb
时间Sat May 29 19:03:25 2010
※ 引述《johnnycgi (红茶不加糖)》之铭言:
: 环境: Ruby 1.8.7, Rails 2.3.8, Gems 1.3.7, Ubuntu 10.04, mongrel, MySQL 5.1
: 状况: 今天练习 RoR 的时候一直有个疑惑
: 自己写 HTML 的时候可以自行选择 post / put...
: 可是在使用 map.resources 之後
: 要怎麽选择 method 呢?
: 这个问题困扰我一个早上了 囧
: 虽然我目前是用改 route.rb 的方式达到目的
: 但是这样一点都不够 DRY
: 重复的地方太多了
: 也许是我 google 能力还不够好
: 搜寻到的文章看了还是茫然 QQ
原本是用推文 还是稍微讲解一下
使用map.resources其实就是自动帮你定义了七种action的path
假设指定map.resources :events
index => events_path
show => event_path(@event)
new => new_event_path
create => events_path
edit => edit_event_path(@event)
update => event_path(@event), 指定:method => :put
destroy => event_path(@event), 指定:method => :delete
这种作法使route.rb及viewer不这麽dirty
在上手前 也许会觉得很难记
一下有s 一下没s
一下要带参数 一下不带参数
我的师父教我的时候 是使用最简单的方式
一次不会写十次 十次不会写二十次
所以在刚开始的时候大概写了十几次最基本的CRUD
到後来自己归纳了一点简单的联想记忆法
供你参考一下
index
通常是用来捞出
所有资料去做list
所以不需带参数 需要加s
show
通常是show出
单笔指定资料的详细内容
所以需要带参数 不需加s
new, edit
一个在前面加new 一个在前面加edit
create
因为是
新建资料 不需要指定ID
所以不需要带参数
至於加s 我目前找不到可以说服自己的讲法
update, destroy
因为这两个
不是使用GET和POST
所以必须特别指定:method
因为这两个是针对
指定单一目标去做处理
所以必须带参数 不加s
--
想要了解更多 可以去看ihower及XDite两大神人的blog
我只是ROR初学者 如有错误敬请指导
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.73.18.30
2F:推 johnnycgi:感谢 hello 兄利用宝贵假期解答疑惑...努力研究中 05/29 21:37
3F:→ johnnycgi:poga 兄那篇文章我有 google 到 XD 05/29 21:37
4F:→ johnnycgi:目前大概了解是以七种指令定义七种 action 05/29 21:38