Skip to content

{ Category Archives } Rails

[原创]Rails中用AASM实现工作流与多步骤向导

ruby有一个act as state machine的插件,可以实现工作流或者多步骤向导的功能。 state machine,是计算机科学里面一种模型,这个插件主要实现的是finite state machine,既有限状态自动机。 首先,AASM的安装: config.gem "rubyist-aasm", :source => "http://gems.github.com", :lib => ‘aasm’ 安装好之后需要在你的Model里面加入 include AASM 下面是一个简单的例子。来介绍AASM的使用。 加入我们有一个person的model,一个person可以处于三种状态,sleeping, working 还有eating. 初始状态是sleeping, 从sleeping只可以通过eat事件,转到eating,不可以转到working.(吃了饭才能工作)。 从working只可以通过eat事件,转到eating,不可以转到sleeping. (不能空肚子睡觉)。 然后从eating可以通过work事件转到working,或者sleep转到sleeping. 这些可以转化成下面的代码 class Person < ActiveRecord::Base   include AASM     aasm_column :current_state #定义那个字段来储存当前状态   aasm_initial_state :sleeping #定义初始状态     #定义三个不同的状态   aasm_state :sleeping   aasm_state :eating [...]

Ruby 1.8.7 和1.9.1 Windows手动安装

Windows的ruby installer给出各种各样的怪异错误,实在是受不了了,于是手动装了,其实很简单,就是解压一个文件夹,但是很多库需要装一下. 第一步:安装所需的lib 包都是ruby主页推荐的,我不用tk装,列表可以在此找到:http://jarp.does.notwork.org/win32/ zlib 里面的dll openssl -找到“libeay32.dll”, 复制到 ruby\bin. . -找到 “libssl32.dll”, 复制到 ruby\bin 然后改名为ssleay32.dll readline 复制readline.dll iconv 里面的dll pdcurses 里面的dll gdbm 里面的dll 不想这么麻烦,可以下载我已经单独取出来的dll文件,全部放倒ruby/bin 文件:rubylib 第二步:将ruby/bin加入PATH 第三步:安装gem – 下载rubygem – 解压缩 – 到里面的目录,运行ruby setup.rb 完成

203 Routing in Rails 3

203: Routing in Rails 3 (From asciicasts.com and Railscast ) Translated by Yinghai. Please contact zyinghai at gmail.com regarding this translation. 翻译的比较急,如有问题,请联系zyinghai at gmail.com 这一集我们继续研究Rails的新特性, 这次我们看一下Rails 3的路由. Rails 3提供了一些新的API和新的功能来定义路由. 为了更好的演示,我们先建立一个detour应用。 rails detour 建立好应用之后,我们可以打开config/routes.rb文件看一下. 默认的文件包含了一些演示新API的文档和例子,当你有空的时候,这些都值得一看。 我们先删掉自带的文档,换上老的格式,再来对比一下Rails 3新的用法。 /config/routes.rb Detour::Application.routes.draw do |map|   map.resources :products, :member => { :detailed => :get }   map.resources :forums, :collection => [...]

Dreamhost部署 Ruby on Rails

建好数据库,用git在dreamhost账号里面clone一个项目目录。 然后添加域名,目录指向public子目录。 钩上ROR选项后,点fully host domain。 不幸的是,启动总有问题。 于是我做了下面几件事情。 1 把rails 2.3.5 冷冻进项目目录 rake rails:freeze:gems 2 设置数据库 database.yml production: adapter: mysql encoding: utf8 database: waimai_hailizi host: mysql.*******.net username: ******** password: ************ 3 建立数据库表 rake –trace db:migrate RAILS_ENV=production 4 配制环境 config/environment.rb RAILS_GEM_VERSION = ’2.3.5′ unless defined? RAILS_GEM_VERSION ENV['RAILS_ENV']=’production’ if ENV['RAILS_ENV'] == ‘production’ # don’t bother on dev ENV['GEM_PATH'] [...]