Blog Archives

Rails

Install Ruby2.0 and Rails 4.0 on OX S Part 2

接上文《Install Ruby2.0 and Rails 4.0 on OX S Part 1》,本文接着介绍如何安装rails4.0 。 1. 安装bundle 需要注意bundle版本问题 $ gem install bundler –no-ri –no-rdoc $ bundle -v Bundler version 1.3.5 必要时可能需要rbenv rehash操作。 2. 安装rails4.0 安装过程很简单,也很顺利。 按照rails官方说法,如下安装: $ gem install rails –version 4.0.0.rc1 –no-ri –no-rdoc

Posted in Rails, Ruby, Tech

Install Ruby2.0 and Rails 4.0 on OX S Part 1

Ruby 2.0都出来好一段时间了,咱也赶个时髦刷新一下,现在用的版本还是1.8.7呢。 本文主要介绍在OX S 10.8.3下安装rbenv和Ruby2.0的过程。 1. 事先准备 有些东西是前提条件,需要保证完成如下两个包的安装。 1.1. Command Line Tools 编译Ruby需要c编译器,所以要在系统里提前安装Xcode并安装Command Line Tools 1.2. ruby-build 编译Ruby用的,它是一个rbenv的plugin,实际上rbenv install命令就是它提供的。 $ brew install ruby-build 2. 安装rbenv和需要的包 2.1. 什么是rbenv? 简单来说,因为Ruby的稳定版和开发版本比较多,所以有很多需要同时支持几个版本的需求,rvm和rbenv就是干这个的。 rbenv年纪小于rvm,设计之初就是以简单为主,比如连编译ruby都不是自己来做,而是使用了ruby-build。另外,更重要的是它和Bundler配合的很好,这对Rails开发者来说很重要。 2.2. 安装rbenv mac下可以直接用brew安装rbenv,还算方便,只需如下命令即可: $ brew install rbenv 但是,有些工作还是需要手工来做的,比如执行上面这条命令后,会打印出如下信息: To enable shims

Posted in Rails, Ruby Tagged with: , , , ,

undefined method `^’ for “6”:String

Rails 2.3.4 Ruby 1.9.1 脚手架刚生成都出错。 原来是个BUG: https://rails.lighthouseapp.com/projects/8994/tickets/3144-undefined-method-for-string-ror-234

Posted in Rails, Ruby

LuRuJu 将jude的模型当成Rails的model类使用

LuRuJu是Lube between Ruby and JUDE的缩写,它的目的就是无缝链接ror程序和jude的模型 特点包括: 1.配置简单,只需要把jude文件放到RAILS_ROOT/app/model下即可。Jude模型会作为mvc的m来被使用。目前实现了类之间的1对1,1对n关联。也支持类之间的继承关系。 2.不需要再维护migrate文件,只需运行 lor:db:create就可以了。表的定义使用jude文件中的定义。 3.可以往model里追加Ruby代码来扩种业务逻辑等 4.和config.cache_classes联动,不需要重启rails就可以修改jude文件并使之有效。 5.即可以用jruby,也可以用cruby 这个软件的作者是野村周平,文档 多是日文,不过看代码应该能看的差不多。 主页是 http://luruju.com/

Posted in Rails, Ruby

acts_as_taggable

这个世界到处都是tag 而且这个世界上好像有两个acts_as_taggable,一个是dhh的plugin版的,一个是gem版的。 比较了半天,发现还是gem版的比较好(http://rubyforge.org/projects/taggable/)。 具体来说 1.gem对于不同的要tag的对象,可以用TagsTable1s格式的表来存tag和对象的关系,比如photo的tag用photos_tags表。 plugin版的则只用一个表taggings,用taggable_type这个字段来表示tag的对象类型。 2.可以为tag关系增加属性。 plugin版的tag关系表只有3个字段(不包括id),要想给这个tag关系加其它属性则比较困难。 gem则容易多了。 gem的tag和被tag对象之间的连接表除了tagid和被tag对象id,还可以有别的属性。 在给对象加tag的时候,可以顺便更新这些属性: # We can do some interesting things with it now   person = Person.new   person.tag "wine beer alcohol", :attributes => { :created_by_id => 1 }   Person.find_tagged_with(:any => ‘wine’,

Posted in Rails

Rails中使用ESI实现页面cache

什么是ESI ESI的全称是Edge Side Includes,是一个基于XML的标记语言,目的是在HTTP中组装各种资源。是由Oracle和Akamai等公司提议的,在W3C的网站也可以找到相关规格说明,最新的是2001年的了,也不是什么新东西。传统的cache技能基本都已页面为单位进行缓存,问题就是页面部分的动态内容可能比较多,而且是每个客户端的内容都不一样(比如个人的登录信息,欢迎xxx等。),缓存比较困难。ESI为了能把页面的一部分进行缓存,使用基于XML的标记语言,来描述对page内个内容的缓存情况。这样,服务器(缓存部分)就可以只缓存共同部分了。 ESI有点类似SSI,但是它比SSI功能更丰富。 目前支持/实现ESI的开源服务器包括Squid,Mongrel-ESI等,商用的有Oracle和Akamai的服务器。 要在Rails里支持ESI需要安装两个插件,一个是Mongrel用的插件Mongrel-ESI,一个是Rails用来处理ESI标记(tag)的fragmentFu。两个软件都可以在http://mongrel-esi.googlecode.com找到。 如何安装一下Mongrel-ESI我就不说了,因为我也没有装过,下面的代码我都没有试验过。 下面来看一下ESI的代码,下面是一个测试的例子(转自http://blog.tkmr.org/tatsuya/show/368-rails-10-esi,日文) cd /home/my/rails/app/path —-index.html—– <h1>Welcome ESI!!</h1> <p><esi:include src="/welcome/now" max-age="45"/></p> esi标记里的就是ESI的内容了,应该比较好理解,max-age的意思就是页面缓存保留的时间,这里的话每45秒缓存就会被更新一次。 再来看看控制器里的代码: ./script/generate controller welcome now —-welcome_controller.rb—- def now   render :text => "#{Time.now}" end 启动Mongrel_esi: mongrel_esi start   ** Starting Mongrel listening at

Posted in Rails

这段话有问题吗?

在看Ralf Wirdemann 和Thomas Baustert的《RESTful Rails Development》,1.2节的why REST的时候说道: Clean URLs. REST URLs represent resources and not actions. URLs always have the same format: first comes the controller and then the id of the referenced esource. The requested manipulation is independent of

Posted in Rails, Tech

REST有什么好的

REST(Representational State Transfer )在Rails里已经被支持了,但是始终搞不清它到底好在哪里。以下均为个人理解,如果不对的地方请指正。 REST以资源为中心,在典型的oltp系统里这个资源就是一个数据库记录,分析层上是一个业务对象。 rest把资源放到URL里,而对资源的CRUD操作则放在http的header里。(因为现在的浏览器还只支持get和post,而delete和put则需要格外处理,rails里是用了input hidden控件) 对于对象的操作,不像以往那样表现在URL上,比如/blog/delete/1表示删除id为1的blog项目,在rest里,只需要/blog/1至于是删除,还是更新,在URL里是看不出来的(这样会不会有问题?比如用户从URL看以为当前是show,F5刷新了一下,结果实际上是delete)。 REST真的把URL变得简单了?如果只是长度小了的话可以算是。也许REST的好处就是使得URL的数量变小。 当然,以上看法只是对使用浏览器来操作web应用的场合,至于web service的话,不需要用户了解多少url等内容,也许会确实变得简单。 这里有一个简单的介绍教程,REST的

Posted in Rails

DRECOM Award on Rails 2007

Drecom 公司为了在软件工程师中推广Rails,从2006年就举行了DRECOM Award on Rails。 今年是第二年了,最高奖100万日元,合8300美元左右,合人民币6万多,如果人民币再升值,就快不到6万了。 报名时间为6月2号到9月25号。 国内的团队不知道有没有想要试试看的。 具体信息可见http://rails.drecom.jp/english_top

Posted in Rails

听Dave Thomas演讲

在台上是没穿鞋子演讲的,比想像的胖一点,尤其是肚子,呵呵。:-) Dave像爱自己的孩子一样爱着Ruby。 而且和他的孩子一样,Ruby也被说为进入了思春期(青春期)。 交友关系也变了,而且还开始和别人约会,包括: IronRuby,JRuby,Rubinius,Gaden’s Point 等。 另外还讲了些关于Ruby的危机: 1.对社区的破坏。 2.大公司的分割。(Ruby不是sun的Ruby,也不是微软的Ruby) 3.不同的意见的冲突(好的,坏的,如何区分) 4.爆发性的增长。(预计近2,3年之内) 最重要的QA Q.很早就使用Ruby的人抱怨Rails太复杂了。Dave怎么看? A.这是个很好的问题,因为自己在Rails社区里的感受不太好,3个星期之前已经脱离Rails社区了,以后主要集中于Pure Ruby。 Ruby社区还没有变划(变质?)。Rails成长的太快,real busy ,没时间让它变得nice,3周前还说[we want rails to be nice],2天后180度的变了。 不过,还想给Rails一个机会。 (上面可能说的有点不完整) 关于Dave是否脱离Rails,我也不敢肯定,但是那天确实说了感到Unhappy,想集中于Pure Ruby。 再说他们公司还要搞Rails培训和出书呢。 可以看这里,记得比较详细,英文不少。 http://jp.rubyist.net/RubyKaigi2007/Log0610-S5.html

Posted in Rails, Ruby

无觅相关文章插件,快速提升流量