日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何修改RubyOnRails中ActiveRecord默认的表格名和外键字段映射关系?

發布時間:2024/8/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何修改RubyOnRails中ActiveRecord默认的表格名和外键字段映射关系? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??????? 最近在看ROR的東西,并試著實踐了一下。

??????? 在看完了ROR那個誘人的demo短片和Eiffel Qiu的rubyonrails.pdf后,我在佩服ror的快捷之余,有兩個疑問:

1. 如何在ror無法自動找到model和數據庫表格對應關系的時候定義后,如何自定義表格和model ActiveRecord class的對應關系?

2. 演示中在class book中添加了“belongs_to :category”后,自動建立了books中的column category_id和categories表的id的外鍵對應,如果我們不想要用category_id作為字段名的時候如何設置對應關系?

??????? 五一有空實踐了一下,這兩個問題可以這樣解決:

??????? 1. 定義了一個model之后,rails會自動嘗試著去找到該ActiveRecord class對應的復數形式數據庫表格,并建立相應的屬性。例如如果class名是person的話,rails會自動找到名為people的表格(如果有的話)。

??????? 這對于表格名是一些常用詞匯的情況是比較方便,但是對于一些簡寫的數據庫表名或者一些帶有明顯中文色彩的表名(例如gd_novel,gd-廣東)等,rails是無能為力的,無法幫你找到。

??????? 這個時候,使用set_table_name進行指定:
? class Mouse < ActiveRecord::Base
???? set_table_name "mice"#這里定義指定的表格名
? end

??????? 2. 在ror的api幫助中找到關于belongs_to的幫助,發現要進行自定義外鍵字段名可以這樣定義:

class Book < ActiveRecord::Base
??? belongs_to(:Category,:class_name => 'Category', :foreign_key=>'cat_id' )
????#????????????????? ^屬性名???????????????????????????????????? ^屬性的實現類名??????????????? ^對應categories ID字段的外鍵
end

??????? 這樣books表可以這樣定義:Books(id integer, title varchar(100)...cat_id integer...)。

??????? 對于ActiveRecord的其他關系定義函數:has_and_belongs_to_many、has_many、has_one等都是通過foreign_key定義外鍵字段名。

〔附〕:ruby on rails api:http://api.rubyonrails.com/

總結

以上是生活随笔為你收集整理的如何修改RubyOnRails中ActiveRecord默认的表格名和外键字段映射关系?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。