4

私はこの答えを見つけました、そしてそれは私がしていることとほとんど同じように聞こえます。datamapperがデータオブジェクトを介してSQLServerをサポートできるかどうかについてはさまざまな回答があります。基本的に、SQL Serverには、一貫して構造化されたデータベース、一貫して名前が付けられたテーブルなどを使用するアプリがあります。私たちはそれと相互作用する必要のあるあらゆる種類のツールやものを作成していますが、それらのいくつかはリモートで作成されているため、SQL ServerアプリはAPIであるため、読み取り/書き込み操作を行うための一般的でシンプルなアクセスポイントを作成する必要があると判断しましたすべてのC#と私が軽蔑する他のものです。

今私の質問は、ルビーORMが各モデルのpkey、fkey、テーブル名などの規則を定義することによって、基本的に別のアプリケーションのレガシーデータベースのモデルを作成できる場所を知っている例やプロジェクトがあるかどうかです。続編は私が唯一のORMです。 SQL Serverで使用したことがありますが、このようなことは決してしません。助言がありますか?

4

3 に答える 3

2

Sequel は自動的にモデルを作成しませんが、Sequel::Database#tables と Sequel::Database#schema (テーブルごと) の出力を取得し、キーとテーブル名を分析して推測する拡張機能を作成できます。協会で。Sequel がデフォルトでこれを行わない理由は、すべての場合に正しく行うことができないためです。しかし、データベースが常に特定の規則に従っていれば、確実に機能させることができます。

于 2010-03-15T02:36:32.517 に答える
1

私は MS SQL Server で Ruby を使い始めたばかりなので、完全に機能する例を示すことはできませんが、私の経験とあなたが言ったことに基づいて、Sequel のモデル機能を使用することをお勧めします。

Sequel は、MS SQL Server を確実にサポートし、テストされていますが、Active Record の場合、状況は少し明確ではないようです。私は DataMapper を使用したことがないので、それについてコメントすることはできません。私の知る限り、Ruby の ORM は、DataMapper、Sequel、Active Record 2、および Active Relation/Active Record 3 (新しい Rails 3 データ アクセス機能) だけです。

MS SQL 用の Active Record アダプターがありますが、MRI 1.8.7 ではまったく機能しませんでした。Microsoft の IronRuby チームは、このアダプターのバージョンを使用して、MS SQL Server で IronRuby on Rails を実行しているため、IronRuby の Active Record の組み合わせを試すことを検討してください。IronRuby は現在 Release Candidate の段階にあるため、これは機能するはずですが、現時点ではまだ多くのバグ修正が行われていることは間違いありません。

于 2010-03-13T12:48:21.183 に答える
0

ActiveRecordは、あなたが説明していることを実行できるはずの1つのオプションです。

したがって、このようなことが可能になるはずです。

class Order < ActiveRecord::Base
  establish_connection { #a hash describing your SQL Server connection attributes }
  set_table_name 'PRODUCT_ORDER' # or whatever
  set_primary_key :PROD_ORD_ID
  has_many :order_lines
end

class OrderLine < ActiveRecord::Base
  establish_connection { #as above }
  set_table_name 'ORDER_LINE'
  belongs_to :order
  has_many :products # etc...
end

order = Order.first
order.order_lines.each { |line| puts line }
于 2010-03-12T11:16:28.087 に答える