花了几天时间学习了一下rails下的REST. 现在把自己的理解记录下来,以备后用。
REST不用说了,网上一堆介绍。rails对REST的支持主要体现在route,helper,resouces format几个部分。由于之前对route不是特别了解,我对REST的疑问也主要是在这部分的。REST风格的程序简化了URL长度,这中简化是通过增加对资源的请求方式来实现的,非REST的HTTP method 只有post和get两种。 REST需要4种,增加了put和delete。
我理解的REST的好处: 代码简洁,开发效率很高 ,SEO
1 route部分rails的支持。
rails有种好东西named route。之前由于对route部分不是很清楚,花费了很多时间理解这部分。先说一下named route。常见的route是这样的。
map.connect ':controller/:action/:id'
应该很多人都明白的。看一个named routed的
map.apple :cotroller => "apple",:action => "eat"
在view中就可以以下这么用
<%=link_to "eat",apple_url(1)%>
我理解的产生的url应该是这个样子的
“/apple/eat/1”
ok!
RESTful的rails的route.rb中会有这样的代码出现
map.resources :somethings
map.resource

ther_thing
我理解的是 复数 及 资源s
单数 即 资源
map.resources :as do |a|
a.reources :b
end
嵌套路由 够吓人吧
不过功能也awsome
2 helper method
map.resources :somethings 会产生这样的helper
somethings_path
something_path
:
:
map.resource同上
map.resources :as do |a|
a.reources :b
end
会产生
a_b_path
等价于
/a/:a_id/b
3 由scaffold_resource 生成的controller会有一下几个方法
index,show,new,edit,update,destroy,create
edit,new比较特殊,不属于CRUD中的。其实是不会产生数据库操作的 method => get, url => new/edit_something_path
index method => get ,url => somethings_path
show method=>get ,url => something_path
update method => put ,url => something_path
create method => post,url => something_path
destroy method => delete ,url => something_path
就这么多吧 参考资源google,ActionController::Resouce
另外现上电子书一本。作者你要是觉得不公平我就拿下来 。 估计你也看不懂这篇帖子。
scaffold_resources好像已经过时了。 未完。