<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-167  評論-65  文章-0  trackbacks-0
    多態關聯 也叫虛擬關聯, 其實 表是不存在的。。。不像 :through => :connections 那connections的表是存在的,也可以不存在的,connections是一個關聯模型

    有這樣一個需求,需要用到 虛擬關聯

    在SNS中,例如xiaonei,douban等等都有 最近好友更新的內容顯示,那么這個 一般是在一個 表中,例如 叫activities 表,更新有很多種 ,例如 修改頭像,發表日志,建立了好友關系,發表評論等等,。。說白了就是 一個表 關聯了 多個表,那就得用到 虛擬 關聯了。。

    表結構:


    原理:
    上面有三個表,activities表(記錄更新了那些操作,最重要的兩個字段是item_id,和item_type,item_id是對應到關聯表的主鍵id,item_type是對應到關聯表的表對象名例如comments表就是Comment) Posts表 (用戶發表文字的表,例如有發表blog的blog_id,發表論壇 topic的 topic_id,給用戶留言的client_info_id,body是發表的內容),
    comments表(評論表,body是評論內容,當然評論也好好多種評論,這個表里也需要關聯許多表,從comments表的字段中也可以看到用了虛擬關聯)

    用法:
    model:

    activity
    class Activity < ActiveRecord::Base
      ................
      belongs_to :item, :polymorphic => true
    ..........................
    end

    Comment
    ..................
    has_many :activities, :foreign_key => "item_id" , :dependent => :destroy
    ..................

    加上 :dependent => :destroy 是當這條評論刪除時,activities 表里的記錄同時被刪除


    或者:

    has_many :activities, :as => :item , :dependent => :destroy


    那么 Post 模型 同理可得。。。。

    因為上面的 :item , 所以 activities 表里的 item_id ,  item_type 是約定俗成的。。。。。。。。。

    取數據
     activity.item.body
    activity 是activities表中的記錄對象

    ref:
    http://guides.rails.info/association_basics.html
    http://hideto.javaeye.com/blog/76709
    http://hi.baidu.com/rainchen/blog/item/fc3a94eeb31ad62b2df53412.html
    http://iceskysl.1sters.com/?action=show&id=25
    http://rubycnrails.cn/articles/23 (了解:dependent=>:destroy)




    write by feng
    posted on 2009-08-12 17:06 fl1429 閱讀(2387) 評論(0)  編輯  收藏 所屬分類: Rails
    已訪問數:
    free counters
    主站蜘蛛池模板: 亚洲视频在线一区二区| aa级一级天堂片免费观看| 免费无码专区毛片高潮喷水| 国产亚洲男人的天堂在线观看| 精品在线视频免费| 日韩毛片免费在线观看| 国产人妖ts在线观看免费视频| 国产亚洲午夜高清国产拍精品| 91亚洲va在线天线va天堂va国产| 久久亚洲AV成人无码| 久久久久久毛片免费播放| 国产精品成人四虎免费视频| 亚洲最大的成网4438| 亚洲精品国产第一综合99久久| 青青青视频免费观看| 亚洲国产成人久久综合野外| 337p日本欧洲亚洲大胆色噜噜| 一级毛片在线免费观看| 最新仑乱免费视频| 久久精品国产亚洲一区二区| 亚洲精品综合在线影院| 和老外3p爽粗大免费视频| 免费无码又爽又刺激聊天APP| 亚洲日产无码中文字幕| 免费精品久久久久久中文字幕 | 亚洲一区二区三区影院| 中文字幕视频免费在线观看| 女人18毛片免费观看| 亚洲人成电影在在线观看网色| 免费人人潮人人爽一区二区| 国产亚洲精品看片在线观看| 无码少妇精品一区二区免费动态| 久久夜色精品国产噜噜亚洲AV| 日韩精品无码区免费专区 | 亚洲福利视频网址| 两性色午夜视频免费播放| 91情国产l精品国产亚洲区| 免费看少妇作爱视频| 亚洲香蕉久久一区二区三区四区| 大地资源中文在线观看免费版| 国产免费久久精品久久久|