2017-08-04 16 views
-4

レールコントローラで未加工SQLクエリを実行しようとしています。私はクエリをデータベースプログラムでテストし、それが動作します。私はそれは私がそれを書いた道を好きされていないことを、この長いエラーメッセージが出続けるRailsコントローラにSQL Serverクエリを書き込む

class SitesController < ApplicationController 
    def index 
    @sites = SELECT * FROM "AM-Martin".dbo.CpCore_Site WHERE "Number" LIKE 'LA%' OR "Number" LIKE 'LC%' 
    @hash = Gmaps4rails.build_markers(@sites) do |site, marker| 
     marker.lat site.latitude 
     marker.lng site.longitude 
    end 
    end 
end 

は、ここに私のコントローラ(sites_controller.rb)です。

誰でも手伝ってください。

UPDATE私のコントローラは次のように変更しました

class SitesController < ApplicationController 
    def index 
     query = "SELECT * FROM dbo.CpCore_Site WHERE 'Number' LIKE 'LA%' OR 'Number' LIKE 'LC%'" 
     @sites = ActiveRecord::Base.connection.execute(query) 

     @hash = Gmaps4rails.build_markers(@sites) do |site, marker| 
     marker.lat site.latitude 
     marker.lng site.longitude 

    end 
    end 
end 

しかし、今私が言うsite.latitude一部のエラーを取得しています:

未定義のメソッド `緯度'0の場合:Fixnum

latitudeは、抽出しようとしているデータベーステーブルの列の1つです。

+2

エラーは何ですか? – Pavan

+0

定義されていないメソッドlatitude 0:fixnumは、変数 'site'にInteger値が含まれていることを意味します。 –

答えて

1

このような質問をすることはできません。あなたは

query = "SELECT * FROM "AM-Martin".dbo.CpCore_Site WHERE "Number" LIKE 'LA%' OR "Number" LIKE 'LC%" 
@sites = ActiveRecord::Base.connection.execute(query) 

それとも

このよう
@sites = Model.where("Number LIKE 'LA%' OR Number LIKE 'LC%'") 

を行うことができ、これはあなたを助けることを願っています。

関連する問題