Rails

Rails与Sphinx的整合

如何在 Rails 项目里添加全文索引功能呢。下面介绍一下用sphinx-for-chinese 提供的Rails插件给Rails项目添加全文索引的过程

阅读全部内容 »

敏捷的MVC Web框架 Rails

Rails 可以说是吸收了太多优秀的元素:

  • Ruby语言的强大
    借助于Ruby脚本语言的高效性,Rails可以帮助开发者瞬间完成整个Web项目框架的搭建
  • J2EE 优秀的MVC实现
    借鉴于SSH对MVC的实现,Rails创新出 M(ActiveRecord)-V(ActionViewer)-C(ActionController)框架
  • 约定胜于配置的哲学理念
    听到了J2EE里过多配置文件的怨言,Rails从哲学的角度出发,提出“约定胜于配置”的观点,按照Rails约定,可以省去很多复杂的配置。
  • REST(Representational State Transfer具备表像的状态迁移)
    在 Rails 1.2 之前,Rails 沿袭目前流行的 SOA 实现,即SOAP和XML-RPC。但在Rails 1.2 之后,Rails直接支持REST这样的借口,增加了一组路由宏定义,借助于HTTP的几个动作来实现Web资源的调用(GET、PUT、POST、 DELETE等)。
  • CI (Continuous Integration 持续集成)
    借助于软件工程持续迭代开发的理念,Rails也推崇持续集成的理念。最为突出的就是Rails的数据迁移(Migrate)。Rails借助于rake 任务,将数据库的持续集成完美实现。数据库的创建,更新和改动都是一次迁移任务,而且每个迁移任务都由向后回滚的函数,从而可将数据库回滚到迁移之前的状态。

用 Rails 2.x.x 和 MySQL 搭建一个Web项目的步骤

众所周知,Rails是一个敏捷的Web MVC开发框架,它可以帮助开发者瞬间完成一个Web项目框架的搭建,省去了J2EE里SSH框架大量复杂的配置工作。它只需要几条命令,就可以完成从数据库到应用曾所有组件的生成以及项目框架的搭建,让人简直难以相信。下面就介绍一下整个搭建的过程。

阅读全部内容 »

localization插件实现Rails多语言支持

localization 插件介绍

在 Rails 2.2 版本之前,Rails 应用程序都是采用localization插件实现应用程序的本地化,支持多语言。localization有点类似于gettext,使用很简单的方法就可以为你的应用实现多语言支持,进而实现应用的本地化。Rails 2.2 之后,Rails 引进了 I18n 模块,因此不需额外安装插件就支持多语言。

安装

这个插件的安装方式与其他的Rails插件安装没啥太大区别,只需要在Rails项目目录中按照如下命令安装即可:

RAILS_ROOT> ruby script\plugin install localization

使用

当localization插件安装完成之后,Rails项目启动之后将自动载入他,我们需要在Rails项目目录中建立一个lang目录用来存放语言包。
推荐的做法是在lang目录下建立的语言包的文件名应该与语言名能够对应起来,例如我们要建立一个中文语言包,我们就需要在RAILS_ROOT/lang/目录下建立一个名为zh_CN.rb的文件。内容如下:

Localization.define('zh_CN') do |l|
 l.store 'Hello world', '你好,世界'  
end

然后在application.rb文件中加入如下内容,定义需要使用的语言名:

Localization.lang = 'zh_CN'

再打开一个模板文件,在其中输入如下内容:

<title><%= _("Hello world") %></title>

启动Rails项目,浏览这个页面,你就会在标题栏看到中文的标题

Rails多语言支持

Rails I18n(国际化)

Rails在 2.2 版本以后已经把 I18n 模块引入了 Rails 框架,以前的多语言支持大都采用 localization 插件完成的。在 Rails 2.2 版本后,我们只需要在配置文件中开启 I18n,并写相应语种的资源文件就可以了。

I18n 演示例子

1、开启I18n
创建一个配置文件,用于存放本地化的信息( RailsProject> config/initializers/i18n.rb),文件内容如下:

I18n.default_locale = 'zh'
LOCALES_DIRECTORY = "#{RAILS_ROOT}/config/locales/"
LANGUAGES = {
'English' => 'en',
'Chinese' => 'zh'
}

参数解释:
I18n.default_locale 指定默认的本地语言
LOCALES_DIRECTORY 指定存放多国语言文件的目录
LANGUAGES 存储所支持语种

阅读全部内容 »