-1

私はこの夏からRailsを学び、それを使っていくつかの成功したスタンドアロンアプリを作成し、Railsのほぼすべてに感謝するようになりました。

しかし、私の現在のプロジェクトは、他の目的(Webサービス、データウェアハウス、接続する他のアプリ)に使用されるデータベースのフロントエンドとしてRailsを作成しています。そして、ActiveRecord、および主にすべてのRailsが開発されていることに気づいています。 AR、このアプローチに関しては、非常に一方向であるように思われます。

注:私はレガシーデータベースを参照していません。プラグを差し込む必要がありますが、「当時」に設計されたものです。

Railsは、このデータを処理する唯一のアプリケーションであると考えているようです。複合主キー(テーブルの名前付けや列の名前付けなど、調整できないもの)のようなものに関しては、ますます気づいています。

複合キージェムがあることは知っていますが、この単一のジェムが機能することに依存して、MVCアプリケーション全体を開発しているように感じます。私はそのようなものにますます遭遇することを恐れています。私は代替のORMを調べましたが、多くの宝石がActiveRecordに依存しているようです。

ActiveRecordが持っているこの明らかに利己的な角度に私は少し驚いて悲しんでいると思います。

Railsがエンタープライズレベルのデータベースとどのように連携するかについて、フィードバックや成功を収めている人はいますか?

4

1 に答える 1

3

Railsは、主に「意見の分かれる」Web開発フレームワークとして構築されています。

すぐに使用できるように構築されているのは、フルスタックWebアプリケーションです。このアプリケーションでは、システム全体が「Railsの方法」で構築されます。これは、システムをシンプルに保つためにRailsのコミッターが行った多くの決定の結果です。標準。規則に固執する場合、行う必要のある構成の決定の数は非常に少なくなります。

これらの規則には、特定の方法でデータベースを設定することが含まれます。主キーは自動インクリメントで「id」という名前で、外部キーは「foreigntable_id」です。ActiveRecordは組み込みであり、ほとんどの場合、使用されると想定されています(使用されていない場合でも)。

これは、標準スタックからの逸脱が機能しないことを意味するものではありません。SequelとDataMapperは問題なく動作します。テーブルの列には(ほぼ)任意の名前を付けることができます。アプリケーションが想定どおりのことを実行できる場合。それが最も重要なことです。

はい、Datamapperを使用していたため、アプリはDatamapperに依存しています。それはどうして悪いことですか?

ActiveRecordがデフォルトであるため、他の多くのgemがActiveRecordに基づいて機能するため、Datamapperで動作しない可能性があることを理解してください。これはDatamapper(またはRails)のせいではありません。

ここでの本当の質問は、「Railsは、代替のORMまたは複合キージェムを使用している場合でも、Xよりも適切で生産性が高いのでしょうか?」です。

私はそうだと主張します。では、すべてのクラスで何を設定する必要がself.table_name=ありますか?self.primary_key=では、ActiveRecordでのみ機能するいくつかの宝石を放棄する必要がある場合はどうなりますか?したがって、データベースのトリガーとビューを考慮する必要がある場合はどうでしょうか。私はこれらすべてのことを扱っていますが、Railsは、これまでに使用した他のすべてのものと比較して、今でも一緒に作業するのが楽しいです。

于 2013-02-05T15:05:32.107 に答える