Ruby专区

Ruby|Ruby教程|Ruby代码|Ruby技巧|Ruby应用|Ruby脚本

如何在rubymine中安装ruby debugger


目前用的ide是rubymine。rubymine在debug代码的时候提示需要安装ruby-debug-base19x-0.11.26.gem。在rubymine中安装是会失败的。我试了网上说的方法,以下一种可以帮我解决该问题:

1.下载devkit,解压到某目录后。这里我解压到d盘d:\\devkit\\mingw\\bin

2.配置系统环境变量:加上d:\\devkit\\mingw\\bin和d:\\devkit\\bin

3.在cmd命令窗口中安装ruby-debug-base19x-0.11.26.gem(rubymine会安装失败)。执行gem install ruby-debug-base19x-0.11.26.gem

安装需要一些时间,搞定后,你的rubymine就可以进行debug了

 

本文出自 “向上人生路” 博客,请务必保留此出处http://juxing.blog.51cto.com/3029697/568135

最详细的Ruby on Rails安装步骤


和我刚才看的文章差不多,感觉应该算是很不错的.

最详细的ruby on rails安装步骤

1、安装ruby

不用说 是下载安装包:http://rubyforge.org/frs/?group_id=167,注意版本—害人不浅,后面会说到,我下的是1.8.6-26
http://rubyforge.org/frs/?group_id=167&release_id=45627

装完后,可以用ruby -v 测试是否安装成功,如图,要是出现了版本 就说明安装成功了

安装ruby498)this.width=498;\” nmousewheel=\”javascript.:return big(this)\”> 

2、ruby安装完成后,安装rails
http://rubyforge.org/projects/rails/

在命令行下运行 gem install rails,会有四五个提示 一路y,安装完后,依旧可以用rails -v, 来检测rails 是否安装成功

安装rails498)this.width=498;\” nmousewheel=\”javascript.:return big(this)\”> 

3、创建web应用

还是命令行下输入 rails testweb,比如当前的路径是 c:\\documents and settings\\administrator>rails testweb,便会在c:\\documents and settings\\administrator下创建一个testweb文件夹。

创建web应用498)this.width=498;\” nmousewheel=\”javascript.:return big(this)\”> 

创建web应用498)this.width=498;\” nmousewheel=\”javascript.:return big(this)\”> 

ps:这里是可以加路径的 比如 rails c://test,具体可以看官方api:http://api.rubyonrails.org/

4、在当前目录(testweb)下,运行 ruby script\\server 启动服务,关于webrick服务器更多的信息可以访问 http://www.webrick.org/

启动服务498)this.width=498;\” nmousewheel=\”javascript.:return big(this)\”> 

5、浏览器中输入http://localhost:3000/,如果看到以下页面,说明ok

浏览器中输入498)this.width=498;\” nmousewheel=\”javascript.:return big(this)\”> 

6、写一个helloworld的web程序,ruby script\\generate controller helloworld命令

写一个helloworld的web程序498)this.width=498;\” nmousewheel=\”javascript.:return big(this)\”> 

然后找到hello_world_controller.rb

找到hello_world_controller.rb498)this.width=498;\” nmousewheel=\”javascript.:return big(this)\”> 

输入以下代码,保存

我曾经用 render_text \”hello ror world\”   试了半天也不管用,搜了半天才发现是版本的问题,经验啊

在浏览器中打开http://localhost:3000/hello_world,就会看见结果

结果498)this.width=498;\” nmousewheel=\”javascript.:return big(this)\”> 

ps:初学的一点点记录,还希望rails高手能指点一二.

1、或许有的朋友跟我一样 看不到hello world,查看日志,出现如下错误

status: 500 internal server error
no such file to load — sqlite3

这是由于没有装sqlite3数据库,http://files.cnblogs.com/geek007/sqlite3.rar这里下载,

然后解压到ruby的bin目录:d:\\ruby\\bin,命令行执行:gem install \”d:\\ruby\\bin\\sqlite3-ruby-1.2.3-mswin32.gem\”

2、推荐一个cmd工具powercmd,用来替换系统的cmd,你会感觉很方便的。

 

 

Ruby 压缩文件夹 之前找了很久 网上看到的方法 备份一下


zip_util.rbq9i平坦软件园

require \’zip/zip\’q9i平坦软件园
class ziputilq9i平坦软件园
  # 压缩文件方法q9i平坦软件园
  # zip_file_name 压缩文件绝对路径,含文件名q9i平坦软件园
  # file_path 要解压的目录或文件q9i平坦软件园
  def self.add_to_zip_file(zip_file_name,file_path)q9i平坦软件园
    # start_path 表示q9i平坦软件园
    def self.add_file(start_path,file_path,zip)q9i平坦软件园
      # 如果文件是一个目录则递归调用此方法q9i平坦软件园
      if file.directory?(file_path)q9i平坦软件园
        # 建立目录q9i平坦软件园
        # 如果省略下一行代码,则当目录为空时,此目录将不会显示在压缩文件中q9i平坦软件园
        zip.mkdir(file_path)q9i平坦软件园
        #        puts \”建立目录#{file_path}\”q9i平坦软件园
        dir.foreach(file_path) do |filename|q9i平坦软件园
          #递归调用add_file方法q9i平坦软件园
          add_file(\”#{start_path}/#{filename}\”,\”#{file_path}/#{filename}\”,zip) unless filename==\”.\” or filename==\”..\”q9i平坦软件园
        endq9i平坦软件园
      elseq9i平坦软件园
        # 给压缩文件中添加文件q9i平坦软件园
        # start_path 被添加文件在压缩文件中显示的路径q9i平坦软件园
        # file_path 被添加文件的源路径q9i平坦软件园
        zip.add(start_path,file_path)q9i平坦软件园
        #        puts \”添加文件#{file_path}\”q9i平坦软件园
      endq9i平坦软件园
    endq9i平坦软件园

    # 如果文件已存在,则删除此文件q9i平坦软件园
    if file.exist?(zip_file_name)q9i平坦软件园
      #      puts \”文件已存在,将会删除此文件并重新建立。\”q9i平坦软件园
      file.delete(zip_file_name)q9i平坦软件园
    endq9i平坦软件园

    # 取得要压缩的目录父路径,以及要压缩的目录名q9i平坦软件园
    chdir,tardir = file.split(file_path)q9i平坦软件园
    # 切换到要压缩的目录q9i平坦软件园
    dir.chdir(chdir) doq9i平坦软件园
      # 创建压缩文件q9i平坦软件园
      #      puts \”开始创建压缩文件\”q9i平坦软件园
      zip::zipfile.open(zip_file_name,zip::zipfile::create) do |zipfile|q9i平坦软件园
        #        puts \”文件创建成功,开始添加文件…\”q9i平坦软件园
        # 调用add_file方法,添加文件到压缩文件q9i平坦软件园
        #        puts \”已添加文件列表如下:\”q9i平坦软件园
        add_file(tardir,tardir,zipfile)q9i平坦软件园
      endq9i平坦软件园
    endq9i平坦软件园
  end  q9i平坦软件园
endq9i平坦软件园

使用:q9i平坦软件园

zip_file_url = \”/brand_cards/#{record.brand_id}/#{record.id}\”q9i平坦软件园
        if file.exist?(\”#{rails_root}/public/#{zip_file_url}.zip\”)q9i平坦软件园
          file.delete(\”#{rails_root}/public/#{zip_file_url}.zip\”)q9i平坦软件园
        endq9i平坦软件园
ziputil.add_to_zip_file(\”#{rails_root}/public/#{zip_file_url}.zip\”,\”#{rails_root}/public/#{zip_file_url}\”)q9i平坦软件园

不容错过的Linux命令行窍门


  more=less

  在linux上读取文件通常会涉及到more和less命令。more命令从前向后读取文件,因此在启动时就加载整个文件。less命令则允许在文件中前向或后向移动,加载时只读取文件的下一部分。为了节约时间,一个有用的技巧便是将less命令建立别名为more:

& alias more=less

  把这一条加入你的.bashrc或者.bash_profile文件中,使之成为永久性的别名。

  less命令使用方便,向前滚动就像more命令一样,可以通过敲击空格键或f键来完成。使用一次b键则可以向后滚动一屏。(在less命令的帮助页面你还可以看到更多的命令选项。)

  另一个输出文件内容的命令是cat命令,该命令将整个文件的内容从上到下显示在屏幕上。许多人不知道cat命令还有一个姐妹命令tac。正如你想象的那样,tac命令也会显示整个文件的内容,但是顺序相反,是从下至上。这个命令在读取一个日志文件或其它受关注输出在文件底部的事情时很有用

  shuf命令用处不那么大,但却很有意思,能够打乱输入数据的顺序。试试运行:

& shuf filename

  它将以随机的顺序返回文件内容。

  没人能看到你的屏幕

  在同一台服务器上建立了多个ssh会话?你不该这么做。打开多个ssh会话不仅浪费计算机资源,而且还不方便管理。尤其是当你使用窗口管理器(window manager)或是putty之类包含多个终端并能迅速占据独立屏幕位置的工具时,尤其如此。更好的选择是使用screen或者tmux之类的工具,允许你在一个ssh会话中建立多个终端。

  screen命令很容易使用。首先,你需要确保你已经安装了screen程序。在red hat和ubuntu主机上你需要安装screen程序包,命令是:

& sudo yum install screen

  然后在终端会话中键入:

& screen

  看起来像什么事都没发生,对吧?那你就错了。键入一个命令,如top,那么你将看到系统内正在运行的进程。现在键入ctrl-a-c(按住ctrl键,然后敲a,然后再敲c),一个新的终端窗口会弹出来。你的旧窗口仍然可用。实际上你可以通过ctrl-a-p回到前一个窗口,你还可以通过ctrl-a-a在窗口之间循环。或者你还可以通过序号来选择窗口,根据创建的顺序,每个窗口序号不同,第一个窗口是ctrl-a-0,然后是ctrl-a-1,依次增加。你可以通过不断按下ctrl-a-c来创建更多的窗口,在命令行里键入exit就可以退出窗口。当退出最后一个窗口时,整个会话也将退出。

  关于屏幕最好玩的事就是你可以保留当前的屏幕,并随时回到这个状态。键入ctrl-a-d,保留屏幕,然后你可以返回到最初运行screen命令的那个窗口。随后你可以退出主机。当你再次登录时,你可以运行:

& screen -r

  你的会话会重新开始,并且所有之前的终端都将可用(前提是没人关闭screen进程或重启主机)。你可以在screen的帮助页面找到更多有用的信息。

  另一种screen的替代工具是tmux,它功能更强大使用更复杂,对多用户共享屏幕非常有用。一个常见的应用就是远程双人共同编程。

  http服务器:当你马上需要一个web服务器时!

  当你需要快速传递文件时,最简单的方法之一就是通过http服务器。我常常通过命令行快速地建立一个ruby web服务器:

& ruby -rwebrick -e\’webrick::httpserver.new(:port => 3125, :documentroot => dir.pwd).start\’

  这会在3125端口为当前目录开启http服务:

http://your.server.com:3125

  你还可以使用python完成同样的事:

& python -m simplehttpserver

  这将在8000端口为当前目录开启http服务。(你需要通过防火墙打开这两个端口。)

  记住这一点很重要,任何人都可以从你的服务器上下载文件,所以一定要确保你知道自己对外提供了哪些文件,别把你不想与他人分享的东西也贡献出去。

  更好的进程显示工具:pgrep

  你可能经常发现自己会键入这样的命令:

& ps -a | grep ‘ruby’
1680 ?        00:05:45 ruby
30250 ?        00:06:39 ruby

  但还有一个更简单的方法可以显示进程,并且不需要调用ps命令的输出管道:pgrep。

& pgrep -l ruby
1680 ruby
30250 ruby

  你还可以查询某个特定用户运行的进程,如:

& pgrep -u root

  这会显示所有root运行的进程。

  最后你还可以使用一些grep式的查询技巧:

& pgrep -lv `whoami`

  这条命令会列出所有不属于你的用户进程(就像在grep命令中一样,-v选项表示排除)。

  拼写错误

  你可能知道aspell(或者ispell)库可以允许你在linux上进行拼写检查。但你还能独立运行aspell命令,或者集成到其它应用程序中。例如,从命令行对一个文件进行拼写检查,你可以这样运行aspell:

& aspell -c filename.txt

  这条命令会启动一个交互式的拼写检查程序,你可以检查和更新文件中任何的拼写错误。

  但有时你只是想知道某个单词该怎么拼,这时你需要look命令,它是命令行里一个好用的拼写检查工具。键入look,以及你想要拼写的单词的一部分,例如:

& look vendo

  就会返回一个以vendo开头的单词列表。

Android的反射机制Reflection


由于android 2.2的推出,很多新的api加入导致很多项目移植需要考虑使用java的反射机制reflection来动态调用,动态调用的好处就是不需要使用引用文件,直接通过jdk中声明好的方法直接调用,本身原理基于jvm的,从java 1.5开始支持,原理上就是根据类名而不实例化对象的情况下,获得对象的方法或属性而直接调用。nte平坦软件园

android开发时反射能帮助我们多少?nte平坦软件园

1. 有些网友可能发现android的sdk比较封闭,很多敏感的方法常规的用户无法编译,我们如果翻看了代码直接在反射中声明动态调用即可。比如很多internal或i开头的aidl接口均可以通过反射轻松调用。nte平坦软件园

2. 反射对于android来说更重要的是考虑到应用的兼容性,我们目前主要兼容从android 1.5到2.2的项目,api level从3到8可以方便的扩充,调用前我们预留一个标志位声明该api的最低以及最高的api level为多少可以调用。nte平坦软件园

3. 对于调试java的反射是功臣了,在logcat中我们可以看到出错的地方肯定有类似java.lang.reflect.xxx的字样,这种自检机制可以帮助我们方便的调试android应用程序。nte平坦软件园

反射的缺点有哪些?nte平坦软件园

1. 因为是动态执行的,效率自然没有预编译时引用现有的库效率高,就像平时我们win32开发时,可以不用h文件,直接通过getprocaddress一样去动态获取方法的地址。当然效率要根据复杂程度而决定,一般稍微复杂的处理性能损失可能超过20%,对于一些复杂的涉及java自动类型转换判断,执行时间可能是直接引用的上千倍,所以最终我们调试时必须考虑性能问题。nte平坦软件园

2. 因为反射是动态的,所以需要处理很多异常,不然dalvik崩溃出force close的概率会大很多,很简单的一个反射就需要至少3个异常捕获,本身try-catch效率就不是很高,自然进一步影响运行效率,对于android开发我们必须考虑这些问题。nte平坦软件园

3. 反射因为导致代码臃肿,自然稍微复杂的几个方法实用反射将会导致代码可读性和维护性降低,如果很抽象的调用android开发网强烈不推荐这种方法。nte平坦软件园

最后要说的是reflection并不是java的专利,微软的.net也同样支持,同时更多的动态语言如ruby等均支持这一特性。nte平坦软件园

如何使用Ruby on Rails连接Oracle数据库


今天学习了一下最近流行的ruby on rails,感觉:就是一个代码生成器 链接oracle数据库的时候,查了半天的资料。终于找到办法了,^______^

1.安装驱动

http://rubyforge.org/projects/ruby-oci8/

下载并运行(双击)ruby-oci8-mswin里面的*.rb

2.更改database.yml

development:
adapter: oci
host: examplesid
username: exampleuser
password: examplepass

or

development:
adapter: oci
host: 192.168.0.50/examplesid
username: exampleuser
password: examplepass

没有用到database字段;exampleuser可以用tns来代替;

我的oracle装在另外一台机器上,所以配置如下

development:
adapter: oci
host: mytnsname
username: system
password: manager

3.创建表注意事项

ruby on rails中默认的数据表的名称都是复数的名词,就是说如果你要使用如下命令:

ruby script/generate scaffold item manage

那么你的数据表的名字就要是items(注意其中的s),并且所在位置为刚才制定的database.yml中的username的默认空间下。

我使用的是ruby 1.8.4

rails 1.0.0

建立表的时候必须有一个字段的名称为id,并且要为这个表建立一个{table_name}_seq的sequence,方法如下:

如我的items数据表,字段有:id, title , createdat三个子段,并且建立了一个items_seq的sequence(sql:create sequence items_seq increment by 1)

4.然后用ruby script/server看看结果吧。^____^

Ruby中的百分号表示法


ruby语言中到处充斥着语法糖衣,有很多的惯用表示法,对于初学者来说,往往被这些技巧 搞得晕头转向。 7yi平坦软件园
这两天看rails源码中的rakefile时,遇到一句代码:%x( mysqladmin –user=#{mysql_db_user} create activerecord_unittest ),虽然大概能猜到这句话是干什么的,但是ruby中到底还有多少种以这样的%开头的表示 呢? 7yi平坦软件园
相信大家看到最多的应该是:%w,%,%q…下面是我收集的一些%表示法,希望对大家有帮助。 7yi平坦软件园
7yi平坦软件园
%{string}  用于创建一个使用双引号括起来的字符串 7yi平坦软件园
%q{string} 用于创建一个使用双引号括起来的字符串 7yi平坦软件园
%q{string} 用于创建一个使用单引号括起来的字符串 7yi平坦软件园
%r{string} 用于创建一个正则表达式字面值 7yi平坦软件园
%w{string} 用于将一个字符串以空白字符切分成一个字符串数组,进行较少替换 7yi平坦软件园
%w{string} 用于将一个字符串以空白字符切分成一个字符串数组,进行较多替换 7yi平坦软件园
%s{string} 用于生成一个符号对象 7yi平坦软件园
%x{string} 用于执行string所代表的命令 7yi平坦软件园
7yi平坦软件园
ps:上面几个%表示法中用{}扩住了string,其实这个{} 只是一种分割符,可以换成别的字符,比如(),那么%表示法就是%(string),当然还可以是别的字符,对于非括号类型的分割符,左右两边要相同, 如%!string! 7yi平坦软件园
7yi平坦软件园
下面我对这些表示法简单举几个例子: 7yi平坦软件园
7yi平坦软件园
%{string}用于创建一个使用双引号括起来的字符串 7yi平坦软件园
这个表示法与%q{string}完全一样,这边直接句个例子看结果:7yi平坦软件园

结果: result is: hello, type is:string 7yi平坦软件园
7yi平坦软件园
%q{string}用于创建一个使用双引号括起来的字符串 7yi平坦软件园
%q{string}用于创建一个使用单引号括起来的字符串 7yi平坦软件园
从说明中可以看出这两个表示法的区别就是一个使用双引号,一个使用单引号。使用双引号的字符串会对字符串中的变量做较多替换,而单引号则做较少的替换,具 体看例子。先看%q{string}: 7yi平坦软件园
7yi平坦软件园

结果: result is: hello world, type is:string 7yi平坦软件园
7yi平坦软件园
换成%q{string}: 7yi平坦软件园
7yi平坦软件园

结果: 7yi平坦软件园
result is: hello #{world}, type is:string 7yi平坦软件园
7yi平坦软件园
从上面的结果可以看出,较少替换的情况下,#{world}被解析成了字符串,而不会去计算这个变量中的值。 7yi平坦软件园
7yi平坦软件园
%r{string}用于创建一个正则表达式字面值 7yi平坦软件园
就像使用/reg/方式一样,看代码: 7yi平坦软件园
7yi平坦软件园

结果: 6 7yi平坦软件园
result is: (?-mix:world), type is:regexp 7yi平坦软件园
7yi平坦软件园
可以看出,world从第6个字符开始匹配 7yi平坦软件园
7yi平坦软件园
%w{string}用于将一个字符串以空白字符切分成一个字符串数组,进行较少替换 7yi平坦软件园
%w{string}用于将一个字符串以空白字符切分成一个字符串数组,进行较多替换 7yi平坦软件园
这两个应该是大家见过最多的,用这个方式构造数组,可以省下一些逗号,ruby真 是会惯坏大家,以后大家都不用标点符号了。 7yi平坦软件园
同样给一个简单的例子: 7yi平坦软件园
7yi平坦软件园

结果: result is: helloworld, type is:array, length is:2 7yi平坦软件园
7yi平坦软件园
%s{string}用于生成一个符号对象 7yi平坦软件园
直接先上代码:7yi平坦软件园

结果: 7yi平坦软件园
result is: hello world, type is:symbol 7yi平坦软件园
the two symbol is the same: true 7yi平坦软件园
7yi平坦软件园
可以看出,这两中方式生成的symbol对象完全一样 7yi平坦软件园
7yi平坦软件园
%x{string}用于执行string所代表的命令 7yi平坦软件园
比如: 7yi平坦软件园
%x{notepad.exe}可以启动windows下的记事本,这里我就不列结果了(那是一个大家熟悉的窗口)。7yi平坦软件园
7yi平坦软件园

Ruby及Rails学习笔记


1. 《应用rails进行敏捷web开发》(2nd) p41

对rhtml代码的结尾标记由 “%>” 改为 “-%>” ,即可消除模板经过渲染后,导致在输出的内容中增加的换行符,出现的空白行。

2. 《programming ruby 中文版》(2nd) p317~p318

ruby 是基于行的语言,ruby 的表达式和语句都以行尾结束,除非解析器能够确定语句是不完整的--比如行最后一个符号是操作符或者逗号分号可以区分一行中的多个表达式。也可以在行尾加一个反斜线表示延续到下一行。注释以 # 开始,到物理行结束为止。ruby会忽略 =begin 开头的和以 =end 开头的行之间的物理行,它们可以被用来注释掉一段代码或者用在源代码中嵌入文档。

3. 基本类型

ruby的基本类型包括:数字、字符串、数组、散列表(hash)、区间(range)、符号和正则表达式。

4. loops

当使用 whileuntil 做语句修饰符时,如果被修饰的语句是一个 begin/end 块,那么不管布尔表达式的值是什么,块内代码至少会执行一次。如:
print "hello\\n" while false
begin
print "goodbye\\n"
end while false
输出:
goodbye

5. true

ruby 对真值(true) 的定义:任何不是 nil 或者常量 false 的值都为

6. = 和 -=

ruby 不支持自加 和自减 运算符,如果要用,使用 = -= 替代

7. 方法返回值

每个被调用的方法都会返回一个值。如果不使用 return 方法,默认返回的是方法中最后一条语句执行的结果。

8. block

单行block用{ },多行block用 do/end

9. ruby命名惯例

ruby 使用一种命名惯例来区分名称的用途:名称的第一个字符显示这个名称如何被使用。局部变量、方法参数和方法名称都必须以小写字母或下划线开始。类名称、模块名称和常量都必须以一个大写字母开始。&开头的变量是全局变量,@开头的变量是实例变量,@@开头的是类变量,大写字母开头的默认为常量。

10. #{表达式}

双引号字符串中的#{表达式}序列会被表达式的值替换。任意复杂的表达式都允许放在#{}中。如果表达式只是一个全局实例或类变量,则不需要{ }

11. 类变量

类变量被类的所有对象所共享。对一个给定的类,类变量只存在一份拷贝。与全局变量和实例变量不同,类变量在使用前必须被初始化。通常,初始化就是在类定义中的简单赋值。

最详细的Ruby on Rails安装步骤


    本文介绍了Ruby on Rails的详细安装步骤。文中使用的Ruby on Rails版本是1.8.6-26。安装Ruby之后安装Rails,然后就可以创建Web应用,并在本地测试了。

    1、安装ruby

    不用说 是下载安装包:http://rubyforge.org/frs/?group_id=167,注意版本—害人不浅,后面会说到,我下的是1.8.6-26

    装完后,可以用ruby -v 测试是否安装成功,如图,要是出现了版本 就说明安装成功了

    498)this.style.width=498;\’ onmousewheel = \’javascript:return big(this)\’ height=68 alt=安装ruby src=\”http://images.51cto.com/files/uploadimg/20090617/1011150.jpg\” width=458 border=0>

    2、ruby安装完成后,安装rails

    在命令行下运行 gem install rails,会有四五个提示 一路Y,安装完后,依旧可以用rails -v, 来检测rails 是否安装成功

    498)this.style.width=498;\’ onmousewheel = \’javascript:return big(this)\’ height=44 alt=安装rails src=\”http://images.51cto.com/files/uploadimg/20090617/1011151.jpg\” width=423 border=0>

    3、创建Web应用

    还是命令行下输入 rails testweb,比如当前的路径是 C:\\Documents and Settings\\Administrator>rails testweb,便会在C:\\Documents and Settings\\Administrator下创建一个testweb文件夹。

    498)this.style.width=498;\’ onmousewheel = \’javascript:return big(this)\’ height=640 alt=创建Web应用 src=\”http://images.51cto.com/files/uploadimg/20090617/1011152.jpg\” width=533 border=0>

    498)this.style.width=498;\’ onmousewheel = \’javascript:return big(this)\’ height=646 alt=创建Web应用 src=\”http://images.51cto.com/files/uploadimg/20090617/1011153.jpg\” width=508 border=0>

    PS:这里是可以加路径的 比如 rails C://test,具体可以看官方API:http://api.rubyonrails.org/

    4、在当前目录(testweb)下,运行 ruby script\\server 启动服务,关于webrick服务器更多的信息可以访问 http://www.webrick.org/

    498)this.style.width=498;\’ onmousewheel = \’javascript:return big(this)\’ height=170 alt=启动服务 src=\”http://images.51cto.com/files/uploadimg/20090617/1011154.jpg\” width=623 border=0>

    5、浏览器中输入http://localhost:3000/,如果看到以下页面,说明OK

    498)this.style.width=498;\’ onmousewheel = \’javascript:return big(this)\’ height=565 alt=浏览器中输入 src=\”http://images.51cto.com/files/uploadimg/20090617/1011155.jpg\” width=656 border=0>

    6、写一个HelloWorld的Web程序,ruby script\\generate controller HelloWorld命令

    498)this.style.width=498;\’ onmousewheel = \’javascript:return big(this)\’ height=233 alt=写一个HelloWorld的Web程序 src=\”http://images.51cto.com/files/uploadimg/20090617/1011156.jpg\” width=733 border=0>

    然后找到hello_world_controller.rb

    498)this.style.width=498;\’ onmousewheel = \’javascript:return big(this)\’ height=127 alt=找到hello_world_controller.rb src=\”http://images.51cto.com/files/uploadimg/20090617/1011157.jpg\” width=540 border=0>

    输入以下代码,保存

    1. classHelloWorldController<ApplicationController
    2. defindex
    3. render:text=>\”helloworld\”
    4. end
    5. end

    我曾经用 render_text \”Hello RoR World\” 试了半天也不管用,搜了半天才发现是版本的问题,经验啊

    在浏览器中打开http://localhost:3000/hello_world,就会看见结果

    498)this.style.width=498;\’ onmousewheel = \’javascript:return big(this)\’ height=153 alt=结果 src=\”http://images.51cto.com/files/uploadimg/20090617/1011158.jpg\” width=407 border=0>

    PS:初学的一点点记录,还希望rails高手能指点一二.

    1、或许有的朋友跟我一样 看不到hello world,查看日志,出现如下错误

    Status: 500 Internal Server Error
    no such file to load — sqlite3

    这是由于没有装sqlite3数据库,http://files.cnblogs.com/geek007/sqlite3.rar 这里下载,

    然后解压到ruby的bin目录:D:\\ruby\\bin,命令行执行:gem install \”D:\\ruby\\bin\\sqlite3-ruby-1.2.3-mswin32.gem\”

    2、推荐一个cmd工具PowerCmd,用来替换系统的cmd,你会感觉很方便的。

    【编辑推荐】

    1. 浅谈NetBeans Ruby动态语言支持
    2. Web开发谁更高效 Java对决Ruby on Rails
    3. Ruby语言的发展趋势和启示
    4. Ruby on Rails为企业SOA做好准备了吗
    5. 脚本语言排行榜 PHP、Ruby和Python领先
    【责任编辑:杨赛 TEL:(010)68476606】

总结各种Ruby on Rails命令


    Ruby on Rails命令各种各样,掌握起来还是比较麻烦的。为此我们就帮助大家总结这些常用命令,方便大家以后查询。

    Ruby on Rails的熟练应用可以帮助我们轻松实现代码编写,让编程变得更加轻松。为了更进一步了解Ruby on Rails,我们需要先从Ruby on Rails命令开始了解。

    • Ruby操作Access数据库正确执行方式介绍
    • Ruby代码块实现传递代码
    • 几种常用Ruby表单语句总结概览
    • Ruby关键字详细用法解析
    • Ruby监控网络发送断开警告信息

    Ruby on Rails命令之创建一个Rails应用程序
    & rails app_name
    可选项:
    -d, database=xxx 指定安装一个数据库(mysql oracle postgresql sqlite2 sqlite3 ), 默认情况下是数据库
    -r, ruby-path= 指定Ruby的安装路径,如果没有指定,scrīpts使用env去找Ruby
    -f, freeze (冻结)freezes Rails在vendor/rails目录

    Ruby on Rails命令之API Documentation
    & gem_server
    启动一个WEBrick服务器。这时候你可以通过Http://localhost:8808/ 打开浏览器去查看rails API文档

    Ruby on Rails命令之Rake
    rake db:fixtures:load
    # 载入fixtures到当前环境的数据库
    # 载入指定的fixtures使用FIXTURES=x,y
    rake db:migrate
    # 迁移数据库通过在db/migrate目录下的脚本.可以指定版本号通过VERSION=x
    rake db:schema:dump
    # 创建一个db/schema.rb文件,通过AR能过够支持任何数据库去使用
    rake db:schema:load
    # 再入一个schema.rb文件进数据库
    rake db:sessions:clear
    # 清空sessions表
    rake db:sessions:create
    # 用CGI::Session::ActiveRecordStore创建一个sessions表为用户
    rake db:structure:dump
    # 导出数据库结构为一个SQL文件
    rake db:test:clone
    # 重新创建一个测试数据库从当前环境数据库中
    rake db:test:clone_structure
    # 重新创建测试数据库从开发模式数据库
    rake db:test:prepare
    # 准备测试数据库并在入schema
    rake db:test:purge
    # 清空测试数据库
    rake doc:app
    # 创建HTML文件的API Documentation
    rake doc:clobber_app
    # 删除Documentation
    rake doc:clobber_plugins
    # 删除 plugin Documentation
    rake doc:clobber_rails
    # 删除Documentation
    rake doc:plugins
    # 产生Documation为所有安装的plugins
    rake doc:rails
    # 创建HTML文件的API Documentation
    rake doc:reapp
    # 强制重新创建HTML文件的API Documentation
    rake doc:rerails
    # 强制重新创建HTML文件的API Documentation
    rake log:clear
    # 清空目录log/下的所有日志文件
    rake rails:freeze:edge
    # Lock this application to latest Edge Rails. Lock a specific revision with REVISION=X
    rake rails:freeze:gems
    # Lock this application to the current gems (by unpacking them into vendor/rails)
    rake rails:unfreeze
    # Unlock this application from freeze of gems or edge and return to a fluid use of system gems
    rake rails:update
    # Update both scrīpts and public/javascrīpts from Rails
    rake rails:update:javascrīpts
    # Update your javascrīpts from your current rails install
    rake rails:update:scrīpts
    # Add new scrīpts to the application scrīpt/ directory
    rake stats
    # Report code statistics (KLOCs, etc) from the application
    rake test
    # Test all units and functionals
    rake test:functionals
    # Run tests for functionalsdb:test:prepare
    rake test:integration
    # Run tests for integrationdb:test:prepare
    rake test:plugins
    # Run tests for pluginsenvironment
    rake test:recent
    # Run tests for recentdb:test:prepare
    rake test:uncommitted
    # Run tests for uncommitteddb:test:prepare
    rake test:units
    # Run tests for unitsdb:test:prepare
    rake tmp:cache:clear
    # 清空tmp/cache目录下的所有文件
    rake tmp:clear
    # 清空session, cache, 和socket文件从tmp/目录
    rake tmp:create
    # 为sessions, cache, and sockets创建tmp/目录
    rake tmp:sessions:clear
    # 清空所有在tmp/sessions目录下的文件
    rake tmp:sockets:clear
    # 清空所有在tmp/sessions 目录下的ruby_sess.* 文件

    Ruby on Rails命令之scrīpts
    scrīpt/about
    # 输出当前环境信息
    scrīpt/breakpointer
    # 启动断点server
    scrīpt/console
    # 启动交换式的Rails控制台
    scrīpt/destroy
    # 删除通过generators创建的文件
    scrīpt/generate
    # -> generators
    scrīpt/plugin
    # -> Plugins
    scrīpt/runner
    # 执行一个任务在rails上下文中
    scrīpt/server
    # 启动开发模式服务器http://localhost:3000
    //以下几个不知道怎么去使用
    scrīpt/performance/profiler
    scrīpt/performance/benchmarker
    scrīpt/process/reaper
    scrīpt/process/spawner

    Ruby on Rails命令之Generators
    ruby scrīpt/generate model ModelName
    ruby scrīpt/generate controller ListController show edit
    ruby scrīpt/generate scaffold ModelName ControllerName
    ruby scrīpt/generate migration AddNewTable
    ruby scrīpt/generate plugin PluginName
    ruby scrīpt/generate mailer Notification lost_password signup
    ruby scrīpt/generate web_service ServiceName api_one api_two
    ruby scrīpt/generate integration_test TestName
    ruby scrīpt/generate session_migration

    可选项:
    -p, –pretend Run but do not make any changes.
    -f, –force Overwrite files that already exist.
    -s, –skip Skip files that already exist.
    -q, –quiet Suppress normal output.
    -t, –backtrace Debugging: show backtrace on errors.
    -h, –help Show this help message.
    -c, –svn Modify files with subversion. (Note: svn must be in path)

    Ruby on Rails命令之Plugins
    scrīpt/plugin discover
    # discover plugin repositories
    scrīpt/plugin list
    # list all available plugins
    scrīpt/plugin install where
    # install the a

    【责任编辑:曹凯 TEL:(010)68476606】



Powered By wordpress Copyright Ruby专区 © 2009-2012 版权所有