Example Of has_many In Rails's ActiveRecord

原创 2007年09月21日 16:44:00

一个简单的ActiveRecord中的has_many的示例,数据库中的表的建立SQL语句为:

create table items (
id int not null auto_increment,
title varchar(50) not null,
primary key (id)
);

create table users (
id int not null auto_increment,
name varchar(50) not null,
primary key (id)
);

create table items_users (
item_id int not null,
user_id int not null,
read_time date,
constraint fk_cp_item foreign key (item_id) references items(id),
constraint fk_cp_user foreign key (user_id) references users(id),
primary key (item_id, user_id)
);

 

执行后结果为:

#"Thinking in JAVA", "id"=>"1"}>
#"Tom", "id"=>"1"}>
----------------------------------------
[#"Thinking in JAVA", "id"=>"1"}>]
[#"Tom", "id"=>"1"}>]
----------------------------------------
2007-06-20
2007-06-20

require "rubygems"
require 
"active_record"
require 
"pp"

ActiveRecord::Base.establish_connection(
    :adapter 
=> "mysql",
    :host 
=> "localhost",
    :database 
=> "book2",
    :username 
=> "root",
    :password 
=> "",
    :port 
=> 3306
)

class Item < ActiveRecord::Base
    has_many :items_users, :dependent 
=> :destroy
    has_many :users, :through 
=> :items_users
end


Item.create([
    {:title 
=> "Thinking in JAVA"},
    {:title 
=> "Ruby on Rails Routing"},
    {:title 
=> "Agible Development with Rails"}
])


class ItemsUser < ActiveRecord::Base
    belongs_to :item
    belongs_to :user
end

class User < ActiveRecord::Base
    has_many :items_users, :dependent 
=> :destroy
    has_many :items, :through 
=> :items_users
    
    
def read_item(item)
        ItemsUser.create(:item 
=> item,:user => self,:read_time => Date.today)
    end
end


User.create([
    {:name 
=> "Tom"},
    {:name 
=> "Mary"},
    {:name 
=> "Jane"}
])


pp item 
= Item.find(:first)
pp user 
= User.find(:first)
puts 
"----------------------------------------"
user.read_item(item)
pp user.items
pp item.users
puts 
"----------------------------------------"
puts user.items_users.find(:first).read_time
puts item.items_users.find(:first).read_time

 

 

Ruby on rails 实战圣经:ActiveRecord 数据表关系

Debugging istwice as hard as writing the code in the first place. Therefore, if you writethe code ...
  • felomeng
  • felomeng
  • 2014年03月14日 20:50
  • 9489

Rails日常总结(二)

问题7:execution expired原因之一:映射地址出错 解决方法:将配置文件中的ip地址如192.168.70.3,修改成别名’h3’,注意,要在本地配置host,根据host里面的别名处...
  • qq_24010663
  • qq_24010663
  • 2017年11月23日 09:59
  • 38

Rails的事务和锁

今天订单出了一个库存超卖的问题,查找了很久,才定位到原因,之前用rails也很少用到事务和锁,这里介绍一下它们。...
  • feigeswjtu
  • feigeswjtu
  • 2016年07月10日 20:22
  • 1447

拥抱 Rails 4 —— 详述 Rails 4 的新变化

Gist DetailRevisions22 Stars102 Forks21 Download GistClone this gistEmbed this gistLink to ...
  • dazhi_100
  • dazhi_100
  • 2014年05月18日 18:45
  • 4327

文件上传插件paperclip

Paperclip Build Status Dependency Status Paperclip is intended as an easy file attachment library ...
  • u011345213
  • u011345213
  • 2013年07月08日 22:34
  • 566

rails routes路由笔记

routes : 规定了特定格式的URL请求到后端controller的action的分发规则
  • baodongdong123
  • baodongdong123
  • 2017年03月04日 11:00
  • 204

2.Rails程序框架

模型(model) 视图(view) 控制器(controller) Rails对Web应用的结构有着严格的约束。但是这些约束反倒使得创建应用程序变得简单。模型负责维持应用程序的状态。这种状态有...
  • u011240016
  • u011240016
  • 2017年01月20日 01:18
  • 208

rails中多对多表关联时处理方法总结

一: ER图  举一个简单的例子,用户对文档的访问权限的管理。  共三个表,用户 权限 文档。表关系如下。   users               authorities          ...
  • dazhi_100
  • dazhi_100
  • 2013年11月23日 19:09
  • 3035

在Rails外单独使用ActiveRecord

单独使用ActiveRecord      需要在应用根目录demo/下的app.rb文件中写入: require 'active_record' require 'sqlite3' A...
  • qjpcpu
  • qjpcpu
  • 2013年12月03日 20:32
  • 1131

中级Rails:深入理解Models、Views、Controller

原文:IntermediateRails: Understanding Models, Views and Controllers 非常高兴很多人喜欢StartingRuby on Rails: W...
  • huopo125
  • huopo125
  • 2014年09月30日 16:40
  • 1216
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Example Of has_many In Rails's ActiveRecord
举报原因:
原因补充:

(最多只允许输入30个字)