新版本的will_paginate已经抛弃了这样的做法,转而使用gem的方式,本文通过建立一个名为foobar的应用来了解一下will_paginate的用法。==============================C:\>railsfoobar-dmysqlC:\>cdfoobarC:\foobar>rubyscript/generatescaffoldarticletitle:stringcontent:text此时设置一下数据库(C:\foobar\config\database.yml),并且确保相关数据库已经建立好了。C:\foobar>rakedb:mi...
http://www.jb51.net//article/15505.htm
解释的不错,应该明确了不少 ruby symbol详解起因最近在学习ruby on rails,的确是一个优秀的数据库开发框架。但在过程中,发现在视图文件夹中的rhtml文件里有大量的类似于以下的语句:<td><%= link_to recipe.title, :action => “show”, :id => 1 %></td>这是一个指向链接,如果没有冒号这句话的意思很好理解:这是一个指向http://127.0....
http://www.jb51.net//article/15457.htm
#scanweb.rb#用法ruby scanweb.rb www.jb51.net 将当前结果保存在c:\1.txtrequire 'net/http'filename= File.new('c:\1.txt',"w+")if $*[0]==nil puts "hehe,没有输入网址"elseh = Net::HTTP.new($*[0], 80)resp, data = h.get('/index.html', nil)if resp.mes...
http://www.jb51.net//article/14966.htm
关键字def undef 方法定义module 模块定义class 类定义defined? 检查类型条件语句 if,then,else,elsif,case,when,unless循环语句 for ,in,while,until,next,break,do,redo,retry,yield逻辑判断 not ,and ,or逻辑或空值 true,false,nil异常处理 rescue,ensure对像引用super ,self嵌入模块BEGIN END块的起始 begin/e...
http://www.jb51.net//article/14965.htm
本章处理一些实际问题.语句定界符有些语言需要一定类型的标点,一般会是分号(;)来结束程序的每一语句.Ruby却采用了shell里的sh和csh的方便做法.一行中的多个语句由分号分开,但在行尾分号却并不需要;一个换行被看作一个分号.如果行以反斜杠(\)结束,随后的换行将忽略;这就允许你的单个逻辑行可以跨越数行.注释为什么写注释?虽然良好的代码可自成文档,但那种自以为别人能看懂并按你的方式很快去理解的想法是错误的.除此之外,你自己在离开数天后也会是另一个人;一段时间后我们忘了我们还未修补或增强程序中的哪些部分,你会说,我知道我写了这个的,但我究竟写的是些什么?一些有经验的程序员会相当正确地指出,矛...
http://www.jb51.net//article/12887.htm
前面一节的 Fruit 类有两个实变量,分别表述水果的类型和状态.直到为这个类写了一个定制的inspect方法,我们方才了解它不会对一个缺乏属性的水果做出合理的解释.幸运的是,Ruby提供了一种允许实变量总是被初始化的方法.initalize方法当Ruby创建一个新对象时,它总是会寻找一个名为 initialize 的方法并执行它.因此,我们可以简单通过一个initialize方法向实变量中加入缺省值,这样一来, inspect方法就有东西可说了.ruby> class Fruit &...
http://www.jb51.net//article/12886.htm
什么是一个存取器?我们在前面已经讨论过实变量了,但却未过多的讨论.一个对象的实变量属于它的属性,也是它与其它来自同一个类的对象的一般区别.读写它的属性是重要的;这样做需要做一个叫着属性存取器(attribute accessors)的方法.我们将很快看到我们并不是总要明确地写出存取器方法,但现在先让我们了解所有的细节.存取器的两种类型是写(writer)和读(reader).ruby> class Fruit | def set_kind(k) &...
http://www.jb51.net//article/12885.htm
当一个方法结束工作时我们也许需要进行清理工作.也许一个打开的文件需要关闭,缓冲区的数据应清空等等.如果对于每一个方法这里永远只有一个退出点,我们可以心安理得地将我们的清理代码放在一个地方并知道它会被执行;但一个方法可能从多个地方返回,或者因为异常我们的清理代码被意外跳过.begin file = open("/tmp/some_file", "w") # ... write to the file ... file.closee...
http://www.jb51.net//article/12884.htm
一个运行着的程序常会遇到意外的问题.一个要读取的文件不存在;当希望存入一些数据时磁盘满了;用户可能输入不恰当的数据.ruby> file = open("some_file")ERR: (eval):1:in `open': No such file or directory - some_file 一个健壮的程序会合理并漂亮的处理这些问题.面对那些异常是一件讨人厌的工作.C程序员被要求做到检查每一个可能导致错误发生的系统调用的返回值并...
http://www.jb51.net//article/12883.htm
一个常量由大写字母开头.它应最多被赋值一次.在Ruby的当前版本中,常量的再赋值只会产生警告而不是错误(non-ANSI版的eval.rb不会报告这一警告)ruby>fluid=30 30ruby>fluid=31 31ruby>Solid=32 32ruby>Solid=33 (eval):1: warning: already initialized constant S...
http://www.jb51.net//article/12882.htm
局部变量由小写字母或下划线(_)开头.局部变量不像全局和实变量一样在初始化前含nil值.ruby> $foo nilruby> @foo nilruby> fooERR: (eval):1: undefined local variable or method `foo' for main(Object) 对局部变量的第一次赋值做的很像一次声明.如果你指向一...
http://www.jb51.net//article/12881.htm
