Rails开发细节《一》
?
常用命令
?
?
約定
rails中有很多的約定,正是這些約定幫我們節(jié)省了時(shí)間,讓我們很清晰的明白項(xiàng)目的結(jié)構(gòu),文件的位置。
表名約定
表名默認(rèn)使用model的復(fù)數(shù)形式,小寫(xiě)。例如:model是Sheep,默認(rèn)的表名就是sheeps,如果我們想自定義一些其他名字,或者基于一個(gè)已經(jīng)存在的數(shù)據(jù)表進(jìn)行開(kāi)發(fā),不能修改這個(gè)數(shù)據(jù)表的名稱(chēng),那么我們可以通過(guò)下面的代碼來(lái)指定表的名稱(chēng)。
?
表主鍵的約定
默認(rèn)主鍵名稱(chēng)id,整型,自增。在數(shù)據(jù)表中名稱(chēng)就是id,在model中也通過(guò).id來(lái)訪問(wèn)。如果想指定其他名稱(chēng),可以通過(guò)下面的代碼實(shí)現(xiàn)。
?
通過(guò)上面的修改之后,數(shù)據(jù)表的主鍵列名稱(chēng)變?yōu)閕sbn,在model中也通過(guò).isbn來(lái)訪問(wèn)。但是有一個(gè)地方例外,就是給主鍵賦值,還是需要使用id來(lái)賦值。
?
除了給主鍵賦值需要用id,其他時(shí)候都用指定的列名。
model的關(guān)系
表關(guān)系有三種:
one-to-one
one-to-many
many-to-many
在model中使用的聲明有:has_one, has_many, belongs_to, has_and_belongs_to_many。
one-to-one
?
一個(gè)訂單有一個(gè)發(fā)票抬頭,一對(duì)一的關(guān)系。
有一條很重要:包含外鍵的表,一定會(huì)有一個(gè)belongs_to的聲明。
one-to-many
?
一個(gè)訂單會(huì)有很多的item,一對(duì)多的關(guān)系。
many-to-many
?
一個(gè)產(chǎn)品屬于多個(gè)目錄,一個(gè)目錄包含多個(gè)產(chǎn)品,多對(duì)多的關(guān)系。除了products表和categories表,會(huì)有一個(gè)中間表categories_products(category_id, product_id)來(lái)存放這個(gè)關(guān)系。
我們也可以自己定義關(guān)系表,還可以存放一些其他信息,一些關(guān)于關(guān)系的信息。其實(shí)就是把多對(duì)多的關(guān)系拆分開(kāi),成為兩個(gè)一對(duì)多的關(guān)系,這樣也好理解些。
?
本文轉(zhuǎn)自 virusswb 51CTO博客,原文鏈接:http://blog.51cto.com/virusswb/1016250,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的Rails开发细节《一》的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: you have mixed tabs
- 下一篇: web.xml(8)_jsp-confi