2010-05-18 29 views
0

我是Rails的新手,如果有人將這些SQL轉換爲完整的rails模塊,我會非常感激。我知道它有很多要求,但我不能只爲它們使用find_by_sql。或者我可以嗎?待完成的SQL要轉換爲Rails的樣式模塊

這是SQL後(他們在MS-SQL運行):

SELECT STANJA_NA_DAN_POSTAVKA.STA_ID, STP_DATE, STP_TIME, STA_OPIS, STA_SIFRA, STA_POND FROM STANJA_NA_DAN_POSTAVKA INNER JOIN STANJA_NA_DAN ON(STANJA_NA_DAN.STA_ID=STANJA_NA_DAN_POSTAVKA.STA_ID) WHERE ((OSE_ID=10)AND (STANJA_NA_DAN_POSTAVKA.STP_DATE>={d '2010-03-30'}) AND (STANJA_NA_DAN_POSTAVKA.STP_DATE<={d '2010-03-30'}))

SELECT ZIGI_OBDELANI.OSE_ID,
ZIGI_OBDELANI.DOG_ID AS DOG_ID,
ZIGI_OBDELANI.ZIO_DATUM AS DATUM,
ZIGI_PRICETEK.ZIG_TIME_D AS ZIG_PRICETEK,
ZIGI_KONEC.ZIG_TIME_D AS ZIG_KONEC
FROM (ZIGI_OBDELANI INNER JOIN ZIGI ZIGI_PRICETEK ON ZIGI_OBDELANI.ZIG_ID_PRICETEK = ZIGI_PRICETEK.ZIG_ID)
INNER JOIN ZIGI ZIGI_KONEC ON ZIGI_OBDELANI.ZIG_ID_KONEC = ZIGI_KONEC.ZIG_ID
WHERE (ZIGI_OBDELANI.OSE_ID = 10) AND (ZIGI_OBDELANI.ZIO_DATUM >= {d '2010-03-30'}) AND (ZIGI_OBDELANI.ZIO_DATUM <= {d '2010-03-30'}) AND (ZIGI_PRICETEK.ZIG_VELJAVEN <> 0) AND (ZIGI_KONEC.ZIG_VELJAVEN <> 0)
ORDER BY ZIGI_OBDELANI.OSE_ID, ZIGI_PRICETEK.ZIG_TIME ASC

這些SQLS每天的工作時間,我得到了他們作爲是。此外,我得到了數據庫(它可以從SQL-s中看到)不在Rails約定中。 作爲PS:

  1. 比如像 STP_DATE> = {D'2010-03-30' }) 當然日期 (斯洛文尼亞語日期符號)和 將具有可變 被替換(日期),以便用戶可以從 選擇日期和日期。

  2. 所有這些數據將顯示在 表中的同一頁,所以也許 所有在一個模塊?還是很多?如果這個 幫助,也許。

那麼有人可以幫助我嗎?它爲我的工作和我的第一個項目,我是一個Rails新手和老闆住院(他們變得相當響亮實際)

非常感謝你!

因此,如果有人可以爲至少一個複雜SQL執行相關模型部分,那麼我真的會感到驚訝。我將在一個控制器和一個動作中讀取所有數據。所有將在一次運行中完成。

回答

0

在數據庫中爲這些sqls創建視圖,爲每個視圖創建一個模型。

+0

因爲應用程序包含像{d'2010-03-30'}}這樣的peaces,所以不能這樣做。這些SQL僅僅是一個特例的例子。實際上,日期和用戶ID(例如OSE_ID = 10)由用戶輸入 – Hoornet 2010-05-18 10:43:43

0

這不是真的讓人們去「爲我做我的工作」的地方,還有其他網站,比如租賃編碼器,您可以在那裏做到這一點。

這是一個尋求幫助的地方,但我可以給你一些指示。

你應該做的第一件事就是開始計算出你的模型。您可以嘗試使用Dr Nics magic models自動生成模型,但我期望數據庫不遵循ActiveRecord約定的事實可能會對您造成問題。

過去,我通過將表和列重命名爲Rails約定並提供反映當前使用的現有舊應用程序的命名約定的視圖,我在過去已經取得了一些成功。如果你能夠做到這一點,那麼你的生活將變得更加簡單,因爲你可以使用像Magic Models或Ryan Bates nifty scaffold這樣的發電機爲你提供一個基本結構,然後開始工作。

希望這有助於您的項目,祝您好運。

+0

這就是爲什麼我說它很困難。我不需要爲我完成的工作。我需要至少一個我編寫的複雜SQL的示例,以便我可以對其餘的模型進行建模。我寫的所有其他文本都是爲了幫助人們知道它是什麼。我之前也曾看過'Dr Nics magic models',但我不認爲它在這種情況下有幫助。 另外我有一個基本的結構,但它所有的SQL完全沒有Rails風格。它的完成,我會在C++應用程序中完成。全部手動。 – Hoornet 2010-05-18 10:32:05

1

其實Rails的方式來處理這個,就是爲每個表格創建模型,並在模型中創建關係。

因爲它是一個傳統的模式,你將不得不做以下

class Stanja < ActiveRecord::Base 
    set_table_name 'STANJA_NA_DAN' 
    set_primary_key 'your-primary-key' 
end 

class Postavka < ActiveRecord::Base 
    set_table_name 'STANJA_NA_DAN_POSTAVKA' 
    set_primary_key 'STA_ID' 
    has_many :stanjas, :foreign_key => 'sta_id', :primary_key => 'sta_id' 
end 

類似的東西。不知道你的模型和你的表名意味着什麼:) 但我希望它讓你開始。

成功!