读《应用rails进行敏捷web开发》第2版-7

p167
在model中声明
class Group <ActinveRecord :Base
  has_many :module ,:through =>rights

可以通过rights表中的双外键,从一个父表关联到另一个父表,比如
@group.modules

使用rxml模板
复制内容到剪贴板
xml.xxx 会生成xml标记,即tag。
而在xml.xxx(yyy=>zzz,aaa=>bbb),括号中的hash将会转变为xml属性。
为什么要用respond_to?因为客户端浏览器有多种,同一个action,应该可以根据浏览器的请求类型来返回适当的格式。
在action的逻辑代码处理完毕后,在以往的render之类的语句位置,替换为
上面代码就支持html的响应和xml响应。
至于响应哪种方式,由http请求的头信息决定,例如
accept: test/html,text/plain,application/xml
客户端的请求顺序靠前的,rails返回其格式
用curl来测试返回
curl -H "Accept: text/html" http://localhost:3000/......
curl -H "Accept: application/xml" http://localhost:3000/......
如果客户端浏览器无法设置头信息,那么可以
要做到这样,还必须设置路由routes.rb
map.connect  ':controller/:action/:id.:format'
表示,碰到请求的url,会将请求解析并填入上面4个变量中,当然其中id.后的内容,就填入了变量:format中,于是在action代码中就可以访问该变量
上述代码中的format.xml 可以有另一种方式,可以不用写rxml模板,但不如第一种方法控制的精细,并且将返回对象的所有属性。
format.xml {render :xml=>@product.to_xml(:include=>:orders)}
rake stats
可以对代码进行统计
rake doc:app
可以生成文档
在doc/readme_for_app中是整个应用程序的readme
require "shipping/somelib" 将会加载lib目录下的相应文件,此处加载lib/shipping/somelib.rb
为了防止全局的rails变动影响以前基于老版本rails的应用,需要固化(或者说是绑定)开发时的rails版本,用
rake rails:freeze:gems
它在后台将目前的rails版本拷贝到vendor/rails目录下,这个目录将被应用优先载入。
p241
发现后面越来越精彩,嘿嘿。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值