2010-05-18 4 views
0

저는 레일즈 초보자입니다. 누군가 레일즈 용 모듈을 완성하기 위해이 SQL을 변환하면 정말로 감사 할 것입니다. 내가 물어볼 것은 많이 알고 있지만 find_by_sql을 사용해서는 안된다. 아니면 내가 할 수 있니?레일스의 스타일 모듈로 변환 할 사전 처리 된 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을 (그들은 MS-SQL에서 실행)입니다. 또한 나는 (SQL-s에서 볼 수 있듯이) Rails 규칙이 아닌 Database를 가지고있다. 이 PS로 : STP_DATE 같은

  1. 것들> = {디부 2010-03-30 '}) 이 날짜 물론이다 (슬로베니아어 날짜 표기법)과 변수 로 대체됩니다 (날짜)이므로 사용자는 날짜를 선택할 수 있습니다.

  2. 이 데이터는 모두 표에 나와 있으므로 동일한 페이지가 하나의 모듈에 모두 포함되어 있습니까? 또는 많은? 이 경우 가 도움이 될 수 있습니다.

누군가 나를 도울 수 있습니까? 그것은 내 일과 제 1 프로젝트에 대한 것이고 저는 레일 초보자이며 상사가 입원을하고 있습니다 (그들은 실제로 아주 크게 듣고 있습니다).

대단히 고마워요!

복잡한 SQL 중 적어도 하나에 대해 관련 모델 부분을 수행 할 수 있다면 정말 감사 할 것입니다. 하나의 컨트롤러에서 한 번의 작업으로 모든 데이터를 읽습니다. 모든 것이 한 번에 끝납니다.

답변

0

데이터베이스의 이러한 sqls에 대한보기와 각보기에 대한 모델을 작성하십시오.

+0

{d '2010-03-30'}과 (와) 같은 지역이 애플리케이션에 포함되어 있기 때문에 할 수 없습니다. 이러한 SQL은 특정 사례에 대한 예일뿐입니다. 실제로 날짜와 사용자 ID (예 : OSE_ID = 10)는 사용자가 입력합니다. – Hoornet

0

사람들에게 "나에게 내 일을"하도록 요청하는 곳이 아닙니다. 그 곳에서 할 수있는 rent-a-coder와 같은 다른 사이트가 있습니다.

이 곳에서는 도움을 요청할 수있는 곳이지만 도움을받을 수 있습니다.

먼저해야 할 일은 모델이 무엇인지 알아내는 것입니다. Dr Nics magic models을 사용하여 모델을 자동 생성 해 볼 수는 있지만 데이터베이스가 ActiveRecord 규칙을 따르지 않는다고 생각하면 문제가 될 수 있습니다.

테이블 및 열의 이름을 Rails 규칙으로 바꾸고 기존 레거시 응용 프로그램의 현재 명명 규칙을 반영한 뷰를 제공하여 레거시 데이터베이스로 과거에 성공한 적이 있습니다. 그렇게 할 수 있다면 Magic Model이나 Ryan Bates nifty scaffold과 같은 제너레이터를 사용하여 작업을 시작하기위한 기본 구조를 제공 할 수 있기 때문에 삶이 더 쉬워 질 것입니다.

희망이 있으면 프로젝트에 도움이되고 행운이 있기를 바랍니다.

+0

이것이 내가 말한 이유입니다. 나는 나를 위해 일한 것이 필요하지 않습니다. 나는 나머지 SQL 모델을 만들 수 있도록 변환 한 복잡한 SQL 중 적어도 하나의 예제를 필요로합니다. 내가 쓴 다른 모든 텍스트는 사람들이 그것이 무엇인지 알 수 있도록 도움이되었습니다. 또한 이전에 필자가 썼던 'Dr Nics magic models'을 살펴 봤지만이 경우에는 도움이된다고 생각하지 않습니다. 또한 기본 구조가 있지만 SQL은 레일스 스타일이 아니기 때문에 모든 것이 완료되었습니다. 그게 내가 C에서 그것을 할 것이라고했다 + + 응용 프로그램. 모두 수동으로. – Hoornet

1

사실 레일스는이를 처리하기 위해 각 테이블에 대한 모델을 생성하고 모델 내부에 관계를 생성합니다.

당신이 그런

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 

뭔가 다음을 수행해야합니다 레거시 모델이기 때문에. 당신의 모델과 도대체 당신의 테이블 이름이 의미하는 바를 모르는 채로 :) 그러나 나는 그것이 당신을 시작할 수 있기를 바랍니다.

성공!

관련 문제