开发环境搭建

首先安装Ruby SDK,我安装的版本是2.0。之后安装IDE,这里用的是Jetbrain的RubyMine 5.4.3,注意是否支持对应版本的Ruby SDK。



一段神奇的注册码...

现在最新版本是4.0.2, 使用这个key仍然有效, 对于这个没什么好说的, 如有必要,请支持购买正版。

No.1:

name: rubymine

License Key:

70414-12042010

00002VG0BeoZbwmNAMNCx5E882rBEM

Ysn1P!e"s830EDlHcWg8gmqYVkvZMo

Injf4yqlO1yy"82NiwNzyYInoT7AiX

No.2:

username:EMBRACE

license key:

89330-12042010

00001p4HOxG8it!A4uOcpk1E"boEjk

v!tn2JZJC8Jw4hVlEmviJ0ge461sTw

owxcaVPQvd1gQzGxOpt2rElKQ3"R7w


用在最新版5.4.3上竟然也可以!太神了吧!



开始Ruby之旅

在RubyMine Settings->Ruby SDK and Gems中配置好Ruby SDK后(RubyMine能自动找到安装好的SDK的位置),
就可以写我们最熟悉的HelloWorld的Ruby版了。打开RubyMine后,新建一个空工程,在里面添加一个Ruby Class文件,输入内容如下:

1
2
3
4
5
6
7
8
9
10
11
class Hello
 
  def say
    str = 'hello world!!!'
    5.times { puts str }
  end
 
end
 
hello = Hello.new()
hello.say

执行效果就是在控制台输出五遍hello world!!!。



Rails入门

想要创建一个Rails工程,首先要通过Gems安装Rails包。新的Ruby SDK中都已包含了Gems管理器,所以不用再安装了。
在Settings->Ruby SDK and Gems下,点击Install Gems。



实际上这与直接执行SDK中的Gems批处理是一样的:

1
gem install rails --version "= 4.0.0" --no-ri --no-rdoc

如果网速太慢,可以直接手动下载Gem后安装。Rails的下载链接是http://rubygems.org/gems/rails

1
gem install rails-4.0.0.gem --verbose --no-ri --no-rdoc



常见安装问题

1.为什么Gems安装这么慢?

如果发现安装过程很慢,就用--verbose参数查看到底是卡在了哪里,一般可能是网络问题。可以通过sources命令管理源地址,
只保留一个淘宝的镜像地址。

1
2
3
4
5
6
7
8
#列举所有源
gem sources
 
#添加一个源
gem sources -a "http://ruby.taobao.org"
 
#删除一个源
gem sources -r "https://rubygems.org"

其他常用的源有:

1
2
3
4
http://rubygems.org/  
http://gems.github.com  
http://gems.rubyforge.org  
http://ruby.taobao.org

2.找不到依赖项

安装rails 4时报错:Unable to resolve dependencies: rails requires actionmailer (= 4.0.0)

1
2
#更新RubyGem管理器
gem update --system



2013年11月2日 六

1.可以直接安装RailsInstaller,节省下载Gems包的时间。

2.但安装Mysql Gems包时碰到了错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.
 
        D:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
 
Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=D:/RailsInstaller/Ruby1.9.3/bin/ruby
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/lib
extconf.rb:37:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError
)
 
 
Gem files will remain installed in D:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9
.1/gems/mysql2-0.3.13 for inspection.
Results logged to D:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.
3.13/ext/mysql2/gem_make.out

报错的原因是Gems mysql2 0.3.13找不到依赖的libmysql库和头文件。所以首先确认是否安装了libmysql(即MySQL Connector/C),

即便安装了libmysql,可能gem命令在安装mysql2时也会找不到libmysql的库和头文件,所以执行gem install时直接通过参数指定:

1
2
3
4
gem install mysql2 --platform=ruby -- 
'--with-mysql-lib="C:\Program Files (x86)\MySQL\mysql-connector-c-noinstall-6.0.2-win32\lib" 
--with-mysql-include="C:\Program Files (x86)\MySQL\mysql-connector-c-noinstall-6.0.2-win32\include" 
--with-mysql-dir="C:\Program Files (x86)\MySQL\mysql-connector-c-noinstall-6.0.2-win32"'

这样就可以成功mysql2安装了!可是运行Rails在加载mysql2.so时还是会报Load Error错误,而且错误提示还是乱码!
查了好多文章最后终于在一老外的博客找到了答案,还需要做最后一步:将Connector C\lib下libmysql.dll拷贝到Ruby\bin下
现在启动Rails应用,终于可以连接MySQL数据库了!

3.如果不使用RailsInstaller,那么用gem install时经常会报下面错误:


1
2
3
4
5
6
7
D:\Ruby200\bin>gem install rails --platform=ruby
ERROR:  Error installing rails:
        The 'atomic' native gem requires installed build tools.
 
Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions

这是因为缺少DevKit,而RailsInstaller已经集成了。首先安装

1
2
3
4
5
6
7
8
> cd <DEVKIT_INSTALL_DIR>
> ruby dk.rb init
#生成config.yml,这里会检查将要添加DevKit支持的Ruby列表,只支持通过RubyInstaller安装的Ruby
#如果这里列出的Ruby与你的要求不符,可以手动修改
> ruby dk.rb review  #检查要添加DevKit支持的Ruby列表是否有误,可以略过
> ruby dk.rb install
[INFO] Updating convenience notice gem override for 'C:/Ruby192'
[INFO] Installing 'C:/Ruby192/lib/ruby/site_ruby/devkit.rb'

现在可以执行gem install xxx --platform=ruby --no-ri --no-rdoc

Ruby开发入门的更多相关文章

  1. 《Ruby语言入门教程v1.0》学习笔记-01

    <Ruby语言入门教程v1.0> 编著:张开川 邮箱:kaichuan_zhang@126.com 想要学习ruby是因为公司的自动化测试使用到了ruby语言,但是公司关于ruby只给了一 ...

  2. scala程序开发入门

    scala程序开发入门,快速步入scala的门槛: 1.Scala的特性: A.纯粹面向对象(没有基本类型,只有对象类型).Scala的安装与JDK相同,只需要解压之后配置环境变量即可:B.Scala ...

  3. 安装ruby开发环境

    如何快速正确的安装 Ruby, Rails 运行环境 对于新入门的开发者,如何安装 Ruby, Ruby Gems 和 Rails 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 ...

  4. [转帖]H5 手机 App 开发入门:技术篇

    H5 手机 App 开发入门:技术篇   http://www.ruanyifeng.com/blog/2019/12/mobile-app-technology-stack.html 阮一峰老师的文 ...

  5. Ruby小白入门笔记之<个人记录档>

    书写缘由 快两年的JAVA开发,因为来到一家新公司,产品需要用Ruby开发,故此才有了这从头开始,一入编程深似海啊...... 因为入门时是JAVA,所以理念跟规范早已形成,故此感觉突然采用Ruby编 ...

  6. openresty 前端开发入门五之Mysql篇

    openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户 操作mysql主要用到了lua-resty-my ...

  7. java WEB开发入门

    WEB开发入门 1 进入web JAVASE:标准- standard   JAVA桌面程序 GUI    SOCKET JAVAEE:企业-浏览器控制  web 2 软件结构 C/S :client ...

  8. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解

    原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...

  9. [译]:Xamarin.Android开发入门——Hello,Android深入理解

    返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...

随机推荐

  1. SpringBoot学习之mvc

    Spring Boot非常适合Web应用程序开发. 我们可以使用嵌入式Tomcat,Jetty或Undertow轻松创建自包含的HTTP服务器. 大多数Web应用程序将使用spring-boot-st ...

  2. AQS

    AQS介绍 AQS,即AbstractQueuedSynchronizer, 队列同步器,它是Java并发用来构建锁和其他同步组件的基础框架. AQS的核心思想是基于volatile int stat ...

  3. 记录一次widora sdk编译ipk 实战编译redis

      因为业务需求,需要用到redis存储一点简单的数据,因为redis有良好的哈希机制,可以完美实现我的某些需求,但openwrt官方提供memcached的ipk并没有提供redis,没办法,只能自 ...

  4. Oracle10g以上sysaux表空间的维护和清理

    SYSAUX表空间在Oracle 10g中引入,其作为SYSTEM表空间的辅助表空间.之前,一些使用独立表空间或系统表空间的数据库组件,现在SYSAUX表空间中存在.通过分离这些组件,减轻了SYSTE ...

  5. 一口一口吃掉Hibernate(五)——一对多单向关联映射

    版权声明:本文为博主原创文章,未经博主允许不得转载.如需转载请声明:[转自 http://blog.csdn.net/xiaoxian8023 ] 在上一篇博客<一口一口吃掉Hibernate( ...

  6. JS的事件模型

    之前对事件模型还是比较清楚的,许多概念都清晰映射在脑海中.工作之后,一方面使用的局限性,二是习惯于用框架中的各种事件监听方式,简单即方便,久而久之,事件的一些概念开始淡出记忆中,就像我现在已经开始淡忘 ...

  7. sololearn的c++学习记录_4m11d

    Function Templates Functions and classes help to make programs easier to write, safer, and more main ...

  8. PHP 5 Timezones

    PHP 支持的时区 下面是 PHP 支持的时区的完整列表,这些对一些 PHP 日期函数很有用. 非洲 美洲 南极洲 北冰洋 亚洲 大西洋 大洋洲 欧洲 印度洋 太平洋 非洲 Africa/Abidja ...

  9. 0426html常用标签属性

    一.基础语法 标签:作为网页的最小单元 1.双标签 内容的容器 2.单标签 控制性内容 注释    每一个模块都要写清楚注释 二.基本结构 <!DOCTYPE html>          ...

  10. springMVC源码分析--HandlerMethodReturnValueHandlerComposite返回值解析器集合(二)

    在上一篇博客springMVC源码分析--HandlerMethodReturnValueHandler返回值解析器(一)我们介绍了返回值解析器HandlerMethodReturnValueHand ...