2016-12-13 1 views
0

既存のMSSQL DBでRailsを使用する必要があります。私は「ORDER_NO」という名前の列を持っているmobile_itemsテーブルでRails - MS SQLサーバーのモデルの列名を変更

class Order < ActiveRecord::Base 
    self.table_name = 'mobile_orders' 
    has_many :items 
end 

class Item < ActiveRecord::Base  
    self.table_name = 'mobile_items' 
    belongs_to :order 
end 

を注文し、項目と(多くの1)、それらの間の関連付けを作成した - 私は2つのモデルを作成しました。 私はRailsの中に関連をチェックしてみましたが、私はこれを行うとき:

order = Order.last 
order.items 

(私の列名が「ORDER_NO」の場合)アダプタは例えば、「ORDER_ID」を探してクエリを実行している:

EXEC sp_executesql N'SELECT [mobile_items].* FROM [mobile_items] WHERE [mobile_items].[order_id] = @0', N'@0 int', @0 = 9 [["order_id", 9]] 

このクエリに 'order_no'を使用する方法はありますか? 私が注文モデルでこれを試してみましたが、運が:Giudes on belongs_toAssociations docs

​​

ルックためforeign_keyオプション:

alias_attribute :order_id, :order_no 

答えて

0

確かに、あなたはforeign_keyオプションを指定することはできません。

+0

いいえ、まだ同じ - TinyTds :: Error:無効な列名 'order_id'。 私は gem 'activerecord-sqlserver-adapter'、 '〜> 4.2.0' MS SQL接続のためのを使用していますのでご注意ください – 82skynet

+0

@ 82skynetプライマリキー、 'id'などに何が使われていますか? –

+0

両方のテーブルの 'id'です。 'order_no'はちょうど普通の列です – 82skynet

関連する問題