21

私はRuby on Railsプロジェクトで私のモデルにもっと分離されたシステムを使用しようとしています。ソリューションがDataMapperのように見えました。しかし、昨年、彼らのリポジトリのどれも更新されておらず、Rails 4プロジェクトにインストールされたときに、新しいGemsとの宝石バージョン依存性の競合があります。 Railsの4DataMapperは引き続きRailsに使用できますか?

その状態が今どのようなものですし、それを使って上の任意のコンテンツを上げていない探しですか?私はそれを使うべきか、何か他のものを使うべきか?

+4

なぜdownvote:私たちはここでそれを放棄することを決めた理由は文書化?なぜこれが非常に良い質問ではないか説明してください。 – Jonah

答えて

29

見つけることができます

あなたは(のスキーマをコントロールしていないレガシーデータベースに接続されていない限り、私はActiveRecordのにこだわるお勧めだろうが、もしそうなら、私はSequelと考えています)。 EOL(メンテナーとしてstated on the mailing list)を超えて、モデルの永続性を必要とする多くの宝石はActiveRecordをサポートしますが、DataMapperをサポートすることは非常にまれですので、サポートを自分で実装することを期待してください。私の経験では、バグが見つかった場合は、DataMapperの使用率/放棄率が低いため、自分自身で修正する必要があることもわかります。

danmanstx述べたように、保守を殆どDM2にするために使用今Rubyオブジェクトマッパー(ROM)、に焦点を当てています。一部のROMは機能が完備されていますが、AFAIKのリリース日はまだありません(roadmap参照)。あなたは、関連するDMの宝石のrelease-1.2枝を見れば

、あなたはそれがしばらく一度のマイナーアップデートを取得しないことがわかります。しかし、何百もの問題のバックログがあります。across the DataMapper gems、2年以上古いものもあります。DataMapperのメンテナが不足しているだけで解決できません。(新しいものに取り組んでいると非難しています!) 。

あなたはバージョニング競合を持つDM宝石の最新RubyGemsのバージョンについて正しいです。最新の安定版のDMを使用したい場合は、必要なDMの宝飾品のrelease-1.2ブランチを使用することをおすすめします。

gem 'dm-core', git: 'git://github.com/datamapper/dm-core.git', branch: 'release-1.2' 
+0

優れた答え、感謝@Abe。私は、ActiveRecordの上にDomain Model/Data Mapperのパターンを正常に実装したと思います。このシンプルなものがRailsによってサポートされていれば、それは素晴らしいことでしょう。 *うずまき* – Jonah

3

DataMapperをDataMapper2に変更してから、rubyオブジェクトマッパーに変更しました。それは私の仕事で毎日DataMapperのを使用しています誰かとしてここにhttps://github.com/rom-rb/rom

+0

これは今のところ有用なプロジェクトではありませんか? – Jonah

+1

Datamapper(https://github.com/datamapper/dm-core)をより積極的に更新するのはなぜですか? – AlexQueue

+0

ROMは複数の宝石に大きく依存しています。開発者は通常、ROMではなく、それらに取り組んでいます – SystematicFrank

12

あなたは、私は続編に離れのActiveRecordから移行されますDataMapperの、FWIWを検討している場合は、本当に続編を見てみる必要があります。あなたが独断Railsのイデオロギーを好きなら

は、しかし、あなたは少なくとも摩擦のためのActiveRecordよりそれ以上に見てはいけません。

スコープ、関連条件、関係との関係、ネストされた属性、レコードの初期化、文字列ベースの発注句、検索文字列、ハッシュ、およびその他の進化を扱った後で、Railsコミュニティと開発者の苦労を無視しません。 arel、照会を簡単に表現したり構成したり、スコープを効果的に再利用したり、関連するモデルのバグを検証したり、親と子供の協会の奇妙さ、貧弱なドキュメンテーションを作成することができません。続編のように。

同様に、あなたは(平気独断されている)のRailsのイデオロギーを見て、あなたが選択し、現代のWebフレームワークでは、概念的にクリーンなアプローチを好む場合は、より良いフィットかもしれないものを検討することができます。 Rails 4は、私のために、Sinatra/Padrino/Sequel、Postgres/Redis/SolrとBackbone/Marionette/Eco/Coffeescriptの私のための最後のhoorahでした...私のオピニオンウェブ開発フレームワーク:)

1

DataMapperを達成するための別の宝石がありますRubyでのデカップリング。それはDatamappifyと呼ばれています。

もう1つの素敵なプロジェクトが開発中で、ヘルプが必要です:Virtus、rom-rbSequel(すでにこのスレッドで言及されています)。

Rubyを使ってソフトウェアを実行するには、Rubyistsが勉強して他のアプローチを試みることが重要です。私たちはPadrino.rb、Grape、Rackなどを持っています。

関連する問題