类名
|
表名
|
Record
|
Records
|
LineItem
|
Line_Items
|
Datum
|
Data
|
class Order
<
ActiveRecord::Base end |
class Order
<
ActiveRecord::Base set_table_name "MyOrder" end |
SQL
数据类型
|
Ruby
数据类型(类)
|
int, integer
|
Fixnum
|
decimal, numeric
|
Float
|
interval, date
|
Date
|
clob, blob, text
|
String
|
float, double
|
float
|
chat, varchar, string
|
String
|
datetime, time
|
Time
|
class Order
<
ActiveRecord::Base set_primary_key "orderId" end |
an_order = Order.find(100)
|
使用活动记录的步骤
虽然使用活动记录映射数据表不需要复杂的设置,但我们必须按着活动记录所制定的规范进行操作。这些规范将成为活动记录工作的一部分,以下就是使用活动记录的步骤。
1.建立表
2.连接数据库
3.建立ORM
4.进行增、删、改操作
第一步需要完全按着规范来做。建立表的过程一定要严格按着规范进行,否则就会覆盖活动记录的默认值。以下是建立表的详细过程:
1.建立表
如果你不想在映射时做大量的工作,那么数据表必须按着活动记录所制定的规范来建立。过程如下:
1.表名应该是复制形式(如orders)。
2.主键应该被命名为Id,它的数据类型应该是整型。
如果某个表引用了另外一个表,那么这个表的外键应该按如下格式取名:
<表名的单数形式>_id
因此,按着上面两条规范建立orders表的SQL语句(MySQL数据库)如下:
create table orders ( id int not null auto_increment, name varchar(50) not null, … … primary key (id) ); |
establish_connection( :adapter = > "mysql", :host = > "localhost", :username = > "root", :encoding = > "gb2312", :password = > "1234", :database = > "test" ) |
class Order
<
ActiveRecord::Base … … end |
order = Order.new order.name = "computer" order.update_attributes(params[:order]) |
Order.delete(12)
|
Order.delete([3, 54, 100])
|
order = Order.find(100) order.name = "car" order.save |
create table users ( id int not null auto_increment, name varchar(100) not null, password char(40) null, primary key (id); } |
development: adapter: mysql database: test encoding: gb2312 username: root password: 1234 host: localhost |
ruby script/generate model User
|
class User
<
ActiveRecord::Base def self.login(name, password) find(:first, :conditions = > ["name = ? and hashed_password = ?", name,password]) end def try_to_login User.login(self.name, self.password) end end |
ruby script/generate controller Login
|
class LoginController
<
ApplicationController def login @user = User.new(params[:user]) logged_in_user = @user.try_to_login if logged_in_user session[:user_id] = logged_in_user.id redirect_to(:action = > "index") else flash[:notice] = " 不正确的用户名和密码 !" end end end |
<
% @page_title = "
增加一个用户
" -%
>
< %= error_messages_for 'user' % > < %= form_tag % > < table > < tr > < td > User name: < /td > < td >< %= text_field("user", "name") % >< /td > < /tr > < tr > < td >密码 : < /td > < td >< %= password_field("user", "password") % >< /td > < /tr > < tr > < td >< /td > < td >< input type="submit" value=" ADD USER " / >< /td > < /tr > < /table > < %= end_form_tag % > |