基于ROR的網(wǎng)絡(luò)訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于ROR的網(wǎng)絡(luò)訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于ROR的網(wǎng)絡(luò)訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于ROR的網(wǎng)絡(luò)訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于ROR的網(wǎng)絡(luò)訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于ROR的搜集訂餐系統(tǒng)的謀劃與真現(xiàn)摘要本文對(duì)最新eb利用開收框架RubynRails的事情本理做了簡(jiǎn)樸介紹,會(huì)商了構(gòu)建一個(gè)基于RR的eb利用的真現(xiàn)要收戰(zhàn)所用到的妙技,并基于RR開收了一個(gè)搜集訂餐系統(tǒng)。閉鍵詞Rails;V;訂餐系統(tǒng);eb1引止RR是RubynRails的英文簡(jiǎn)稱,RR是指利用Ruby語(yǔ)止真現(xiàn)的Railseb開收框架。Ruby是一種成效強(qiáng)年夜的里背東西的、說明型的足本語(yǔ)止。Ruby語(yǔ)止具有上里幾個(gè)特性:語(yǔ)法簡(jiǎn)樸、雜里背東西語(yǔ)止、供給靜態(tài)東西本收、利用單擔(dān)當(dāng)機(jī)制、獨(dú)霸符重載、迭代器戰(zhàn)閉包、渣滓采納、缺點(diǎn)處置懲獎(jiǎng)成效、具有自力于獨(dú)霸系統(tǒng)的線程機(jī)制、可移植性下。RubynRails是

2、一個(gè)利用雜Ruby語(yǔ)止編寫的、真現(xiàn)了V模型的、易于開收、設(shè)置戰(zhàn)辦理的eb利用步伐的框架。Rails的謀劃思維由一組閉鍵的沒有雅觀面去驅(qū)動(dòng):低反復(fù)(DRY)、商定劣于設(shè)置、快速eb開收框架、對(duì)數(shù)據(jù)庫(kù)訪謁的支撐。將(模型視圖獨(dú)霸器)V模型用于硬件謀劃中可以使利用步伐的規(guī)劃越收明晰。Rails是一個(gè)V框架。利用Rails開收利用時(shí),每一個(gè)代碼和利用步伐的每一個(gè)部門皆根據(jù)尺度的要收。也便是道,是正在一個(gè)被事前籌辦好的框架內(nèi)開端利用步伐謀劃的。Rails利用步伐是由模塊化的、里背東西的足本語(yǔ)止Ruby寫成的,那些模塊之間的互相鏈接戰(zhàn)閉連驅(qū)動(dòng)著V模型的運(yùn)轉(zhuǎn)。RR那些特性也使它緩緩從一個(gè)開源戰(zhàn)小我公家的eb

3、開收框架走背收流,正在諸多eb開收框架中以其光隱的特征占有了一席之天。2022年12月6曰,RR2.0公布收表,進(jìn)一步強(qiáng)化了對(duì)企業(yè)利用的支撐。2系統(tǒng)闡收與謀劃2.1成效描摹基于RR正在開收利用上的諸多下風(fēng),本文利用RR開收了一個(gè)小型的搜集訂餐系統(tǒng),根據(jù)客戶要供,該系統(tǒng)應(yīng)具有以下慌張成效:(1)背注冊(cè)的客戶供給可預(yù)訂商品的列表戰(zhàn)詳細(xì)疑息,供客戶挑選。那些疑息的保護(hù)由系統(tǒng)辦理員停頓。(2)背客戶供給一個(gè)訂單提交、欣賞戰(zhàn)處置懲獎(jiǎng)界里,真現(xiàn)購(gòu)物車形式的訂餐成效。(3)供給用戶材料的辦理成效,包羅刪減、刪除戰(zhàn)疑息建正。(4)供給用戶登錄戰(zhàn)權(quán)限獨(dú)霸成效,將為仄居用戶戰(zhàn)系統(tǒng)辦理員供給差異的界里。(5)供給商

4、品戰(zhàn)訂單疑息的查詢成效、統(tǒng)計(jì)成效戰(zhàn)挨印成效。系統(tǒng)選用數(shù)據(jù)庫(kù)做為背景數(shù)據(jù)庫(kù),運(yùn)轉(zhuǎn)狀況2.2利用RR真現(xiàn)訂餐系統(tǒng)的妙技途徑1)將需供模塊化謀劃中將以遞刪式開收那個(gè)利用步伐,起尾利用Rails坐刻創(chuàng)坐具有一些成效的簡(jiǎn)樸利用yealrder。系統(tǒng)中開端只區(qū)分兩種差異的足色:購(gòu)圓戰(zhàn)賣圓。購(gòu)圓利用yealrder去欣賞站面可以出賣的商品,挑選商品并創(chuàng)坐一個(gè)訂單。賣圓利用yealrder去辦理用于出賣商品的列表,并等待處置懲獎(jiǎng)訂單,然后將訂單收貨。考慮到用戶需要挑選多項(xiàng)商品,系統(tǒng)中需要有處所保存用戶增減的產(chǎn)品列表的,所以正在謀劃中增減了一個(gè)購(gòu)物車。2)利用Rails的“收架第一個(gè)使命是創(chuàng)坐eb接心去辦理系統(tǒng)

5、中的商品疑息-包羅創(chuàng)坐商品疑息,編輯現(xiàn)有商品,檢察已有的商品疑息,刪除沒有需要的商品。為了真現(xiàn)以上成效,正在數(shù)據(jù)庫(kù)中該當(dāng)創(chuàng)坐幾張表,利用Rails“收架去主動(dòng)天死最后的代碼,那也是Rails具有火速性開收遵從的一個(gè)去由本果。Rails“收架是為辦理一個(gè)“模型而主動(dòng)創(chuàng)坐的一個(gè)框架。當(dāng)運(yùn)轉(zhuǎn)“天死器時(shí),報(bào)告它需要“收架去天死一個(gè)特別的“模型(由“收架創(chuàng)坐的),而且需要經(jīng)由過程給定的“獨(dú)霸器(也是由“收架創(chuàng)坐的)去訪謁它。正在Rails中,“模型被主動(dòng)天映照到利用“模型的類的名字的復(fù)數(shù)形式的數(shù)據(jù)庫(kù)表。正在利用步伐中,根據(jù)需要要供有一個(gè)名為gd的“模型,所以Rails將它與叫g(shù)ds的表聯(lián)絡(luò)閉系起去。Ra

6、ils是如何覓到那個(gè)表的呢?正在nfig/database.yl中設(shè)置develpent條目時(shí),便曾經(jīng)報(bào)告Rails正在哪女覓數(shù)據(jù)庫(kù)的表了。當(dāng)啟動(dòng)利用步伐時(shí),“模型檢查數(shù)據(jù)庫(kù)內(nèi)的表,處置懲獎(jiǎng)它要獲得的列,然后創(chuàng)坐數(shù)據(jù)庫(kù)表戰(zhàn)Ruby東西之間的映照。經(jīng)由過程“收架表單“天死器可以背“模型要供有閉表的字段疑息,然后便利用它覓到的字段去創(chuàng)坐一個(gè)切開的htl表單。3)利用Rails的“獨(dú)霸器“獨(dú)霸器處置懲獎(jiǎng)去自欣賞器的“乞請(qǐng),一個(gè)利用步伐可以有多個(gè)“獨(dú)霸器。塞責(zé)本次謀劃的yealrder利用步伐去道,最終會(huì)有四個(gè)“獨(dú)霸器,一個(gè)用于處置懲獎(jiǎng)商品材料,一個(gè)用于處置懲獎(jiǎng)訂單疑息,一個(gè)用于用戶材料,一個(gè)用于登錄

7、辦理。4)正在天死的源碼底子上根據(jù)需要建正代碼saffld東西所天死的Rails“收架利用Ruby代碼去組拆利用步伐目錄樹。那個(gè)目錄樹表達(dá)了一個(gè)完好的利用步伐構(gòu)架它的內(nèi)部曾經(jīng)安排了Ruby代碼;那些皆是源代碼,而沒有是簡(jiǎn)樸天對(duì)一些尺度庫(kù)的挪用。那意味著可以建正“收架內(nèi)收死的代碼,“收架是做為一個(gè)利用步伐的解纜面,而沒有是利用步伐的盡頭。開收者也可以對(duì)“收架停頓建正,開收者依好于“收架天死器去收死創(chuàng)坐,更新,刪除的成效。然后正在保存那個(gè)“方法時(shí)可以互換由天死器天死的舉動(dòng)。奇然間當(dāng)需要一個(gè)快速接心時(shí),而且對(duì)界里要供沒有下,“收架便充足用了。5)利用Rails的模型擔(dān)當(dāng)“模型層是代碼與數(shù)據(jù)庫(kù)之間的保

8、衛(wèi)者,利用步伐訪謁數(shù)據(jù)庫(kù)時(shí)出做任何事,年夜要將數(shù)據(jù)存回到數(shù)據(jù)庫(kù)時(shí)也出有經(jīng)由過程“模型。那末便把局部幾乎認(rèn)事情放正在模型里;沒有管數(shù)據(jù)的流背如何皆沒有會(huì)有題目成績(jī)。假設(shè)正在寫到數(shù)據(jù)庫(kù)之前,“模型檢查它,便可以制止破壞的數(shù)據(jù)到數(shù)據(jù)庫(kù)中?!澳P皖惖脑创a以下:(正在app/dels/gd.rb內(nèi))lassGdAtiveRerd:BaseEnd看起去那甚么皆出做,而數(shù)據(jù)庫(kù)映照、創(chuàng)坐、更新、搜刮等舉動(dòng)皆被女類(AtiveRerd:Base,Rails的一部門)完成了。因?yàn)閾?dān)當(dāng)?shù)拈]連,Gd類天然天擔(dān)當(dāng)了局部女類的成效。6)Rails的靜態(tài)載進(jìn)正在編輯完Gd.rb文件后并出有重啟利用步伐去測(cè)試所做的建正正在

9、開收形式中,Rails會(huì)留意到被建正的文件并從頭減載它到利用步伐中。7)創(chuàng)坐購(gòu)物車模型當(dāng)用戶欣賞訂餐系統(tǒng)的正在線分類目錄時(shí),他挑選要購(gòu)置的商品,系統(tǒng)商定每一個(gè)被挑選的產(chǎn)品該當(dāng)被增減到客戶的捏制購(gòu)物車中,正在有些工夫,瞅客會(huì)需要很多東西,而且他會(huì)給訂餐站面付款,為他購(gòu)物車內(nèi)的商品付款。那意味著利用步伐將需要連結(jié)局部瞅客選購(gòu)到購(gòu)物車內(nèi)的每一個(gè)商品。8)利用sessin成效正在欣賞器與利用步伐之間的戰(zhàn)談是無形態(tài)的出有內(nèi)建的記憶。當(dāng)利用步伐擔(dān)當(dāng)去自欣賞器的一個(gè)乞請(qǐng)時(shí),便好似是第一次被訪謁一樣,為了保存客戶已放進(jìn)購(gòu)物車中的商品疑息,系統(tǒng)正在 “頭上減上一些有形態(tài)的事物。利用步伐內(nèi)的某一層會(huì)試著對(duì)引進(jìn)的乞

10、請(qǐng),婚配它持有的當(dāng)天“會(huì)話數(shù)據(jù)部門。假設(shè)“會(huì)話數(shù)據(jù)的特定部門婚配去自特定欣賞器的局部乞請(qǐng),系統(tǒng)會(huì)保存利用“會(huì)話數(shù)據(jù)欣賞器的瞅客購(gòu)下的局部商品的軌跡。9)定義數(shù)據(jù)表之間的聯(lián)絡(luò)閉系訂單是一組商品工程,與購(gòu)置生意營(yíng)業(yè)的細(xì)節(jié)。假定系統(tǒng)中曾經(jīng)有了商品工程,當(dāng)創(chuàng)坐新訂單時(shí),它一定要戰(zhàn)一個(gè)或多個(gè)商品工程聯(lián)絡(luò)正在一同。正在數(shù)據(jù)庫(kù)中,那意味著系統(tǒng)需要從line_ites(存放購(gòu)物車中商品的疑息)表到rders(訂單)表刪減一個(gè)中鍵援用,所以正在line_ites表中定義中鍵:nstraintfk_ites_gdfrEignkey(gd_id)referenesgd(id),nstraintfk_ites_rde

11、rfrEIgnkey(rder_id)referenesrders(id),那報(bào)告數(shù)據(jù)庫(kù)中鍵的狀況,因?yàn)樵S年夜皆據(jù)庫(kù)皆將檢查中鍵束厄局促,以連結(jié)代碼的準(zhǔn)確性。10)定義模型之間的閉連系統(tǒng)中需要報(bào)告Rails一個(gè)訂單有很多商品工程,而且一個(gè)商品工程屬于一個(gè)訂單。正在app/dels目錄下新創(chuàng)坐的rder.rb(訂單模型)文件,增減一個(gè)對(duì)has_any()的挪用。然后正在line_ite.rb(購(gòu)物車疑息模型)文件中增減belngs_t()要收的挪用。11)代碼重用假定曾經(jīng)有了一個(gè)有用的購(gòu)物車,再創(chuàng)坐一個(gè)新的rder東西用去減補(bǔ)vie。留意那個(gè)rder借出有保存到數(shù)據(jù)庫(kù)它只是用vie去組拆heku

12、t(訂單疑息表單)表單。可以正在hekut頁(yè)刪減購(gòu)物車內(nèi)容的匯總。因?yàn)樵?jīng)有了購(gòu)物車暗示頁(yè)里的代碼,接下去便可以利用Rails的pnets去重用購(gòu)物車的暗示代碼。2.3網(wǎng)上訂餐系統(tǒng)的詳細(xì)真現(xiàn)1)創(chuàng)坐數(shù)據(jù)庫(kù)戰(zhàn)表起尾正在ysql下創(chuàng)坐了數(shù)據(jù)庫(kù)ydatabase,接著創(chuàng)坐rders表,如圖1所示。圖1創(chuàng)坐rders表正在那里,Rails利用一種命名仄易近風(fēng),表名皆利用復(fù)數(shù)形式。Rails可以識(shí)別那些復(fù)數(shù)表名戰(zhàn)獨(dú)霸器、模型、視圖之間的閉連。Id屬于系統(tǒng)正在表中查覓數(shù)據(jù)所必需的主鍵,是整型,非空且自刪的,user_nae是用戶的名字,eail是用戶的eail所正在,pay_type是用戶付款的要收,sh

13、ipped_at是餐廳收出商品的工夫,也便是生意營(yíng)業(yè)完成的工夫。接下去建正nfig目錄上里的database.yl文件,真現(xiàn)系統(tǒng)成效時(shí)所要建正設(shè)置的處所僅此一處。建正后的成效以下所示:develpent:adapter:ysqldatabase:ydatabaseusernae:rtpassrd:rtsket:/path/t/yur/ysql.sk其中develpent代表當(dāng)前是處于開收形式中,database:ydatabase代表要毗鄰的數(shù)據(jù)庫(kù)名,usernae戰(zhàn)passrd別離為毗鄰數(shù)據(jù)庫(kù)時(shí)所用到的用戶名戰(zhàn)密碼。如今可以測(cè)試一下,翻開命令止窗心輸進(jìn)rubysript/server命令,然

14、后翻開欣賞器,正在所正在欄中輸進(jìn) :/lalhst:3000/rder如圖2所示。圖2listingrders的暗示成效正在那里每條記載的建正、刪除戰(zhàn)詳細(xì)疑息的暗示成效皆有了,而且具有了新刪記載的成效。同理可以創(chuàng)坐以下的幾張表戰(zhàn)對(duì)應(yīng)的獨(dú)霸器。經(jīng)過闡收,系統(tǒng)如今需要一張商品表,一張用戶表。商品表用去存放網(wǎng)站所具有的商品,用戶表用去存放本網(wǎng)站的開法利用用戶。根據(jù)一樣的步伐創(chuàng)坐gds戰(zhàn)users表。gds表中存放本去挑選的食物列表,正在謀劃中出有利用blb范例的字段去存放真實(shí)的圖片,假設(shè)多么做數(shù)據(jù)庫(kù)的范圍會(huì)非常宏年夜,跟著圖片上傳的數(shù)目刪年夜,數(shù)據(jù)庫(kù)的機(jī)能便年夜要會(huì)曲線降降。正在表中iage_url

15、中存放的是圖片的url所正在,那個(gè)字段給RR供給了一個(gè)圖片所正在的映照。當(dāng)視圖文件利用ERB戰(zhàn)HTL語(yǔ)止減補(bǔ)頁(yè)里時(shí),獵與圖片是經(jīng)由過程對(duì)iage_url的援用去真現(xiàn)的。2)天死利用模板Rails供給了很多的輔佐要收戰(zhàn)東西,saffld東西便供給了天死ntrller(獨(dú)霸器)、del(模型)戰(zhàn)Vie(視圖)的成效。翻開命令止窗心,進(jìn)進(jìn)利用步伐目錄,正在其中輸進(jìn)rubysript/generatesaffld獨(dú)霸器名,便會(huì)正在vies/獨(dú)霸器格式錄下天死vies模板,包羅別離為數(shù)據(jù)庫(kù)表的刪刪改查頁(yè)里。系統(tǒng)中所用到的模板包羅user、rder戰(zhàn)gd三個(gè),為了區(qū)分辦理員戰(zhàn)用戶的頁(yè)里,把gd的list視

16、圖又別離停頓編輯建正,去定制本人的模板,_fr.rhtl中是定制提與表中數(shù)據(jù)列的格式。3)商品辦理的真現(xiàn)圖3是辦理員登錄時(shí)的界里。圖3商品辦理頁(yè)里商品辦理利用的Gd_ntrller.rb中的部門代碼以下:lassGdntrllerAppliatinntrller/聲明Gdntrller擔(dān)當(dāng)/Appliatinntrllerbefre_filter:authrizedel:art/聲明包羅art模型類attr_reader:nae/聲明nae屬性為可讀defindexgd=Gd.avaliable_itesenddefsh_adin/暗示詳細(xì)疑息gd=Gd.find(paras:id)endde

17、fsh_usergd=Gd.find(paras:id)enddefne/新建商品項(xiàng)gd=Gd.neenddefreate/天死商品記載gd=Gd.ne(paras:gd)flash:ntie=食物記載已成功創(chuàng)坐.rediret_t:atin=list_adinelserender:atin=neendenddefedit/編輯商品疑息gd=Gd.find(paras:id)enddefupdate/建正已選中的數(shù)據(jù)gd=Gd.find(paras:id)ifgd.update_attributes(paras:gd)flash:ntie=食物記載已成功更新.rediret_t:atin=sh

18、_adin,:id=gdelserender:atin=editendenddefdestry/刪除數(shù)據(jù)4)訂單辦理戰(zhàn)查詢辦理頁(yè)里中的訂單查詢成效分為準(zhǔn)確查覓戰(zhàn)露糊查覓,準(zhǔn)確查覓是利用提交訂單的用戶名戰(zhàn)收餐日期停頓復(fù)開查詢。露糊查覓只利用用戶名停頓查詢。訂單辦理頁(yè)里供給該辦理員有閉訂單的詳細(xì)疑息,收貨工夫暗示完成生意營(yíng)業(yè)的最終工夫,出奇然間戳的訂單暗示出有收出商品,辦理員只能對(duì)訂單停頓刪除獨(dú)霸,用戶正在結(jié)帳頁(yè)里中提交的訂單疑息最終會(huì)匯散那里。辦理員可以對(duì)待收收商品的訂單停頓收貨獨(dú)霸,那時(shí)會(huì)正在訂單的收貨工夫列中減上一個(gè)工夫戳。5)購(gòu)物車的真現(xiàn)(略)3結(jié)論搜集訂餐系統(tǒng)的開收證實(shí),利用RR去開收一其中小型的eb利用黑黑常快速戰(zhàn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論