0

私はRailsの初心者であり、誰かがこれらのSQLをRailsの完全なモジュールに変換していただければ幸いです。質問することがたくさんあることは知っていますが、それらすべてにfind_by_sqlを使用することはできません。または私はできますか?

これらは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

これらのSQLは毎日の労働時間であり、私はそれらをそのまま取得しました。また、(SQLからわかるように)Railsの規則にないデータベースを入手しました。PSとして:

  1. STP_DATE> = {d'2010-03-30'})のようなものは、もちろん日付(スロベニア語の日付表記)であり、変数(date)に置き換えられるため、ユーザーは日付の開始日と終了日を選択できます。

  2. このデータはすべて表の同じページに表示されるので、おそらくすべてが1つのモジュールに含まれているのでしょうか。または多く?; これが役立つなら、多分。

だから誰かが私を助けることができますか?それは私の仕事と私の最初のプロジェクトのためであり、私はRailsの初心者であり、上司は入院しています(実際にはかなり騒々しくなっています)

本当にありがとう!

ですから、複雑なSQLの少なくとも1つに関連するモデル部分を誰かが実行できるかどうか、私は本当に感謝しています。1つのコントローラーと1つのアクションですべてのデータを読み取ります。すべてが1回の実行で行われます。

4

3 に答える 3

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  

そんな感じ。あなたのモデルとあなたのテーブル名が何を意味するのかを知らなくても:)しかし、私はそれがあなたが始めることを願っています.

成功!!

于 2010-05-19T11:59:20.200 に答える
0

データベースにこれらのSQLのビューを作成し、各ビューのモデルを作成します。

于 2010-05-18T09:09:45.430 に答える
0

これは実際に人々に「私の仕事をしてください」と頼む場所ではありません.rent-a-coderのような他のサイトでそれを行うことができます.

ただし、これは助けを求める場所であり、いくつかの指針を与えることができます.

最初にすべきことは、モデルが何であるかを理解し始めることです。Dr Nics マジック モデルを使用してモデルの自動生成を試すこともできますが、データベースが ActiveRecord の規則に従っていないという事実が問題になる可能性があると思います。

テーブルとカラムの名前を Rails 規則に合わせて名前を変更し、既存のレガシー アプリケーションが使用する現在の命名規則を反映するビューを提供することで、過去にレガシー データベースである程度の成功を収めました。それができれば、Magic Models やRyan Bates の気の利いた足場などのジェネレーターを使用して基本的な構造を提供し、作業を開始できるため、生活が楽になります。

これがお役に立てば幸いです。プロジェクトの幸運を祈ります。

于 2010-05-18T09:15:41.770 に答える