About ROR

ROR 吸引我的重要一点是:约定优于配置!
以及ROR的一个原则:Don't Repeat Yourself(DRY)
这个原则保证了将来我们修改代码的时候只改一处就行了,绝对不要重复自己。
<?XML:NAMESPACE PREFIX = O />

 

Agile Web Development with Rails 2Ed中,关于session的处理方式,选用了database方式。
我们用rake命令来创建一个sessions的数据库。
depot> rake db:sessions:create

exists db/migrate

create db/migrate/004_add_sessions.rb

 

Then, we’ll apply the migration to add the table to our schema.

 

depot> rake db:migrate

 

下一步必须告诉Railsdatabase的方式来处理session。因为 the default is to use the filesystem

config目录下找到 environment.rb ,打开以后找到下面这三行。

# Use the database for sessions instead of the file system

# (create the session table with 'rake db:sessions:create')

# config.action_controller.session_store = :active_record_store

把第三行的#号去了就可以了。
在重启服务器之后,刷新一下浏览器就可以看到sessions表中存储的数据了。

 

store控制器中加入了如下方法:
private

def find_cart

session[:cart] ||= Cart.new

end

用了ruby的条件赋值。简化了代码。
前面加private是为了防止Rails把这个方法当作一个可用的action方法。如果加入其他的action方法必须放到private这个声明之前。

 

在没有数据库实体映射的模型中,我们不得不用 include Reloadable 来在每个请求前加载这些class。我们做到在第一次启动服务器之前就添加这条命令就不用再重启服务器了。

 

Agile Web Development with Rails 第二版的内容中加了不少更新。在Rails Framework部分增加了Active Support Active Support is a set of libraries that are shared by all Rails components. )和Migrations 创建数据表的 migration ,你可以认为它是 ruby 语法写的 CREATE TABLE ,而且它做的也就是 CREATE TABLE ,但实际上它是 schema !它已经描述了数据表是怎样的了,而不仅仅是生成数据表,生成数据表仅仅是 migration 执行时瞬时的行为,生成数据表之后 Rails 自动提供 ORM 功能,不再需要另外的 schema 或者自动生成的 code 来重复描述 schema 。这正是其符合 DRY 原则的地方,在整个 RoR 应用当中,只有 migration 这一处描述了 schema ,其它地方均无再次描述 schema 的地方。
depot的应用中加了ajax的应用,等有空的时候把那章翻译出来。。。

 

总的来说Agile Web Development with Rails是本真正的ROR入门书籍,建议看英文版的,中文版的有第一版,买了书的可以先看中文版第一版,然后再下载英文版第二版的看,比较有长进啊。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值