2011-06-28 31 views
1

我試圖從PHP過渡到Rails,並想知道最佳實踐是什麼。我擁有我在MySQL中需要的所有數據,並希望進行簡單的查詢,並使用ActiveRecords提供的各種細節進行顯示。我熟悉MVC範例,並且不想依賴於我對PHP的瞭解,但是,例如,如何能夠完成我以前使用的各種功能:Ruby on Rails3和MySQL查詢最佳實踐

$ query = mysql_query (「Select * from table where name ='blah');

如果我已經有了這些數據(如果我沒有預先存在的數據,我可以看到生成一個腳手架),然後創建一個腳手架,然後導入我的數據到了嗎?還是我寫的原始的MySQL查詢在Ruby中?

謝謝!

回答

1

首先,請記住,Rails是一個web開發框架,而不是像PHP這樣的腳本語言。 Ruby是腳本語言。 PHP也有框架,但只是想確保你意識到這個和另一個之間的區別。

Rails中的大多數基本和中等複雜性查詢都是通過ActiveRecord方法和幫助程序處理的。你會發現你會寫更少的實際SQL,因爲這通常被抽象到框架中。

例如,假設你的模型的名稱是城市,你的查詢在Rails的等效是:

City.find_all_by_name('blah') 

這是如何工作的?當你在Rails中創建一個模型時,你通常會繼承ActiveRecord :: Base的子類。內置於該類中的功能過多,首先檢查數據表併爲表中的每個字段和字段組合構建動態查找器。

由於您已經擁有了所有數據,因此您將會覆蓋Rails的一些常規功能,以便使所有工作都能正常工作。例如,Rails按照慣例假設有一個名爲「id」的主鍵字段。另外,Rails假定表格被命名爲任何模型類定義的複數形式。所有這些都是按慣例默認的,但可以被覆蓋。如果你是從頭開始並遵循慣例,所有這些都會成爲理所當然的事情。

根據你的問題,我認爲你需要花點時間閱讀一些基本的Rails閱讀材料和一些關於ActiveRecord和Rails模型的特定信息,以便你能夠加快Rails和標準PHP之間的這些主要區別應用。如果你從一開始就沒有那麼直接,那麼你將會構建很多PHP風格的Rails,而且你不會充分利用Rails和Ruby提供的東西。最後,你會說「我爲此做了什麼,都是一樣的。「

相反,如果你嘗試從做事情的方式Rails的開始,你會發現,Ruby和Rails提供了很多。

+0

所以會是最好的運行腳手架,然後修改/進口數據是否適合Rails模型? – Rio

+0

如果您有時間並且願意付出努力,那麼是的,我認爲您最好通過以這種方式適應「Rails之路」來實現。必須,但是如下面的@sosborn所提到的那樣,它會讓事情變得更容易,並讓您充分利用Rails提供的好處。 – Yardboy

0

如果您正在使用現有的數據庫工作,那麼你將有一個HAR d時間迫使Rails和它一起玩。 Rails的力量(有人可能認爲它是一個弱點)是它支持慣例而不是配置。換句話說,它真的希望你能以某種方式構建數據庫列。離開慣例,你首先失去了使用Rails的所有原因。

當您啓動一個新的rails項目並使用migrations rails時,確保該結構符合預期。

如果您要將舊項目移至rails,那麼我強烈建議編寫一個函數將該數據導入到rails創建的數據庫中。從長遠來看,這將爲您節省很多心痛,並且可以讓您充分利用Rails的優勢。