美文网首页@IT·互联网程序员
【程序员笔记】rails关联对象的处理

【程序员笔记】rails关联对象的处理

作者: 李庆文 | 来源:发表于2017-04-21 22:03 被阅读48次

    rails采用ActiveRecord方式进行数据的持久化,非常方便老手的使用,但是对于新手来说非常痛苦,因为你不知道哪里就出错了,让人非常痛苦。本文稍作介绍一对一和一对多还有多对多关系的声明和简单使用。

    一. 一对一关系

    首先是两个model类的声明。

    class User < ActiveRecord::Base
      has_one :card
    end
    
    class Card < ActiveRecord::Base
      belongs_to :user
    end
    

    我们这种一对一关系很明显是通过外键进行关联的,注意是主表有has_one属性,而从表拥有belongs_to属性。也就是从表中有我们的外键。
    那么如何建立两个对象的关联关系呢?

    user = User.new
    card.user = user
    card.save
    

    或者是通过

    user.card = Card.create( ... )
    

    总体意思是 a.b=b 和 b.a=a 即可。

    二. 一对多关系

    class User < ActiveRecord::Base
      has_many :bankcard
    end
    
    class Card < ActiveRecord::Base
      belongs_to :user
    end
    

    当声明的时候这样声明,注意中间是一个<<而不再是等于了。

    bankcard =Bankcard.new
    user.bankcard << bankcard
    user.save
    

    三. 多对多关系

    声明的时候关系双方都使用has_and_belongs_to_many。其他和一对多关系一样。

    最后推荐一下个人感觉很不错的资料 4.3 模型中的关联关系(Relations)

    大家加油~

    相关文章

      网友评论

        本文标题:【程序员笔记】rails关联对象的处理

        本文链接:https://www.haomeiwen.com/subject/gmdjzttx.html