- 浏览: 2087640 次
- 性别:
- 来自: NYC
-
文章分类
- 全部博客 (628)
- Linux (53)
- RubyOnRails (294)
- HTML (8)
- 手册指南 (5)
- Mysql (14)
- PHP (3)
- Rails 汇总 (13)
- 读书 (22)
- plugin 插件介绍与应用 (12)
- Flex (2)
- Ruby技巧 (7)
- Gem包介绍 (1)
- javascript Jquery ext prototype (21)
- IT生活 (6)
- 小工具 (4)
- PHP 部署 drupal (1)
- javascript Jquery sort plugin 插件 (2)
- iphone siri ios (1)
- Ruby On Rails (106)
- 编程概念 (1)
- Unit Test (4)
- Ruby 1.9 (24)
- rake (1)
- Postgresql (6)
- ruby (5)
- respond_to? (1)
- method_missing (1)
- git (8)
- Rspec (1)
- ios (1)
- jquery (1)
- Sinatra (1)
最新评论
-
dadadada2x:
user模型里加上 protected def email ...
流行的权限管理 gem devise的定制 -
Sev7en_jun:
shrekting 写道var pattern = /^(0| ...
强悍的ip格式 正则表达式验证 -
jiasanshou:
好文章!!!
RPM包rpmbuild SPEC文件深度说明 -
寻得乐中乐:
link_to其实就是个a标签,使用css控制,添加一个参数: ...
Rails在link_to中加参数 -
aiafei0001:
完全看不懂,不知所然.能表达清楚一点?
"$ is not defined" 的问题怎么办
简单点的
稍微不同的一个版本
自身referential而且,还有两个名字,例如tiwtter你的follower, 叫friend
Spec测试部分
Model设置
#注意外键在person上people: id; name; whatever-you-need friendships: id; person_id; friend_id class Person < ActiveRecord::Base has_many :friendships, :foreign_key => "person_id", :class_name => "Friendship" has_many :friends, :through => :friendships end class Friendship < ActiveRecord::Base belongs_to :person, :foreign_key => "person_id", :class_name => "Person" belongs_to :friend, :foreign_key => "friend_id", :class_name => "Person" end
稍微不同的一个版本
ActiveRecord::Schema.define(:version => 20100410040453) do create_table "people", :force => true do |t| t.string "name" t.string "sex" t.integer "father_id" t.integer "mother_id" t.datetime "created_at" t.datetime "updated_at" end end
#这里就要看source的应用,是用来关联belongs_to的 class Person < ActiveRecord::Base self.inheritance_column = "sex" belongs_to :father, :class_name => "Person" belongs_to :mother, :class_name => "Person" end class Male < Person has_many :children, :class_name => "Person", :foreign_key => :father_id has_many :babymommas, :through => :children, :source => :mother, :uniq => true end class Female < Person has_many :children, :class_name => "Person", :foreign_key => :mother_id has_many :babydaddies, :through => :children, :source => :father, :uniq => true end
自身referential而且,还有两个名字,例如tiwtter你的follower, 叫friend
create_table :users do |t| t.column :login, :string, :null => false end create_table :relationships, :id => false do |t| t.column "user_id", :integer, :null => false t.column "buddy_id", :integer, :null => false end
Spec测试部分
describe User do before :each do %w(u v w).each do |x| eval "@#{x} = User.new; @#{x}.login = '#{x}'; @#{x}.save" end end it "can be linked with another user" do @u.linked_to << @v @u.linked_to.should include(@v) u2 = User.find_by_id @u.id u2.linked_to.should include(@v) end it "can find users that linked to it" do @u.linked_to << @v @v.linked_from.should include(@u) end it "can see friends of its friends" do @u.linked_to << @v @v.linked_to << @w @u.linked_to[0].linked_to.should include(@w) @w.linked_from[0].linked_from.should include(@u) end it "has a list of all users linked to and from it" do @u.linked_to << @v @v.linked_to << @w @v.linked.should include(@u) @v.linked.should include(@w) end end
Model设置
class Relationship < ActiveRecord::Base belongs_to :user, :class_name => 'User', :foreign_key => 'user_id' belongs_to :buddy, :class_name => 'User', :foreign_key => 'buddy_id' end class User < ActiveRecord::Base has_many :relations_to, :foreign_key => 'user_id', :class_name => 'Relationship' has_many :relations_from, :foreign_key => 'buddy_id', :class_name => 'Relationship' has_many :linked_to, :through => :relations_to, :source => :buddy has_many :linked_from, :through => :relations_from, :source => :user end
select user_id, buddy_id from relationships union select buddy_id, user_id from relationships def linked User.find_by_sql " select * from users where id in ( select buddy_id from buddies where user_id = #{id})" end
发表评论
-
Destroying a Postgres DB on Heroku
2013-04-24 10:58 953heroku pg:reset DATABASE -
VIM ctags setup ack
2012-04-17 22:13 3277reference ctags --extra=+f --e ... -
alias_method_chain方法在3.1以后的替代使用方式
2012-02-04 02:14 3322alias_method_chain() 是rails里的一个 ... -
一些快速解决的问题
2012-01-19 12:35 1489问题如下: 引用Could not open library ... -
API service 安全问题
2011-12-04 08:47 1402这是一个长期关注的课题 rest api Service的 ... -
Module方法调用好不好
2011-11-20 01:58 1375以前说,用module给class加singleton方法,和 ... -
一个ajax和rails交互的例子
2011-11-19 01:53 1928首先,这里用了一个,query信息解析的包,如下 https: ... -
Rails 返回hash给javascript
2011-11-19 01:43 2295这是一个特别的,不太正统的需求, 因为,大部分时候,ajax的 ... -
关于Rubymine
2011-11-18 23:21 2297开个帖子收集有关使用上的问题 前一段时间,看到半价就买了。想 ... -
ruby中和javascript中,动态方法的创建
2011-11-18 21:01 1270class Klass def hello(*args) ... -
textmate快捷键 汇总
2011-11-16 07:20 8175TextMate 列编辑模式 按住 Alt 键,用鼠标选择要 ... -
Ruby面试系列六,面试继续面试
2011-11-15 05:55 2050刚才受到打击了,充分报漏了自己基础不扎实,不肯向虎炮等兄弟学习 ... -
说说sharding
2011-11-13 00:53 1528这个东西一面试就有人 ... -
rails面试碎碎念
2011-11-12 23:51 1973面试继续面试 又有问ru ... -
最通常的git push reject 和non-fast forward是因为
2011-11-12 23:29 17276git push To git@github.com:use ... -
Rails 3下的 in place editor edit in place
2011-11-12 01:20 967第一个版本 http://code.google.com/p ... -
Heroku 的诡异问题集合
2011-11-11 07:22 1716开个Post记录,在用heroku过程中的一些诡异问题和要注意 ... -
SCSS 和 SASS 和 HAML 和CoffeeScript
2011-11-07 07:52 12984Asset Pipeline 提供了内建 ... -
Invalid gemspec because of the date format in specification
2011-11-07 02:14 2161又是这个date format的错误。 上次出错忘了,记录下 ... -
ruby面试系列五,面试题及其他
2011-11-05 21:18 7431周六早晨,因为早了所 ...
相关推荐
**偏好has_many :through胜于has_and_belongs_to_many** 虽然两者都能实现多对多的关系,但是`has_many :through`提供了更灵活的设计方案,可以在中间表添加额外的字段或进行复杂的验证逻辑。例如: ```ruby # 不...
在 Rails 中,有几种基本的关联类型:`belongs_to`, `has_many`, `has_one`, `has_and_belongs_to_many`等。这些关联类型可以用来表示不同模型之间的关系,例如一对多关系、多对一关系、多对多关系等。 #### 2.1 ...
ActsAsInheritable 充当可继承对象是专门为Rails / ActiveRecord... ActiveRecord :: Base belongs_to :parent , class : Person has_many :children , class : Person , foreign_key : :parent_id has_many :grandc
可以使用Rails的link_to辅助方法生成链接: ```erb <%= link_to "Sign in with Google", user_omniauth_authorize_path(:google_oauth2) %> ``` 这个过程涉及的主要知识点包括:Devise的身份认证机制、OmniAuth的...
在这个例子中,`UserSerializer`声明了`has_many :posts`,表示用户可以有多个帖子,而`PostSerializer`声明了`belongs_to :user`,表明每个帖子都属于一个用户。这些关联关系会自动生成嵌套的JSON结构。 其次,`...
has_many :api_keys, dependent: :destroy def generate_api_key api_key = self.api_keys.create!(key: SecureRandom.urlsafe_base64) api_key.key end def revoke_api_key api_keys.destroy_all end end...