最近在学习Ruby on Rails,个人觉得最好的学习方法是在实践中学习,在实践中总结是最好的学习。也因为这一点,我拿来RialsSpace——Ruby on Rails web应用开发这本书,作为自己第一次ROR实践参考,我的网站名字叫iTuquSpace。
废话少说,进入正题
第0步,搭建Ubuntu下的ROR开发环境(ROR+MySQL)。
第1步,生成iTuquSpace基本文件并测试生成情况
生成: # rails new ituqu -d mysql
测试:# cd ituqu
# rails server (Ctrl+C退出)然后打开localhost:3000 可以看到新生成的网站首页
第2步,生成用户模型以操作数据库
生成: # rails generate model User
修改migration代码并生成数据库: # vi db/migrate/YYMMDD_create_users.rb
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.column :screen_name, :string
t.column :email, :string
t.column :password, :string
t.timestamps
end
end
end
# rake db:migrate
设定user模型操作数据库操作数据库的验证机制:
class User < ActiveRecord::Base
attr_accessible :title, :body ,:screen_name,:password,:email
attr_accessor :remember_me
SCREEN_NAME_MIN_LENGTH = 4
SCREEN_NAME_MAX_LENGTH = 20
PASSWORD_MIN_LENGTH = 4
PASSWORD_MAX_LENGTH = 40
EMAIL_MAX_LENGTH = 50
SCREEN_NAME_RANGE = SCREEN_NAME_MIN_LENGTH..SCREEN_NAME_MAX_LENGTH
PASSWORD_RANGE = PASSWORD_MIN_LENGTH..PASSWORD_MAX_LENGTH
SCREEN_NAME_SIZE = 20
PASSWORD_SIZE = 10
EMAIL_SIZE = 30
validates_uniqueness_of :screen_name, :email
validates_length_of :screen_name, :within => SCREEN_NAME_RANGE
validates_length_of :password, :within => PASSWORD_RANGE
validates_length_of :email, :maximum => EMAIL_MAX_LENGTH
validates_presence_of :email
validates_format_of :screen_name,
:with => /^[A-Z0-9_]*$/i,
:message => "must contain only letters,"+
"numbers,and underscores"
validates_format_of :email,
:with => /^[A-Z0-9._%-]+@[A-X0-9-]+\.+[A-Z]{2,4}$/i,
:message => "must be a valid email address"