0

私は Rails にかなり慣れていないので、モデル内のオブジェクトのサブセットを選択する方法に沿って何かをしたいと考えていました。たとえば、Project モデルがあり、別のモデル Organizations との結合テーブルに基づいて、プロジェクトのサブセットを選択したいと考えています。

私が最初に考えたのは、projects_helper.rb にヘルパー メソッドを作成して、適切なルックアップを実行し、どのプロジェクトを返すかを決定することでした。

もう 1 つの考えは、ここ ( http://apidock.com/rails/ActiveRecord/Scoping/Named/ClassMethods/scope ) で説明されているようにスコープを利用することでした。

どちらも機能的に目的を達成しているように見えますが、これを達成するためのベスト プラクティスの方法は何でしょうか? これらの各アプローチにアクセスできるものに関して、重要な違いはありますか?

ありがとう!

4

1 に答える 1

0

クエリによって「尋ねられる」質問の観点に依存します。

組織のプロジェクトを求める場合は、最初に組織を選択してから、organization.projects を表示します。モデルを適切にリンクし (組織が has_many プロジェクト、プロジェクトが属している組織)、organization_id をプロジェクト テーブルの外部キーとして持つこと以外に特別なことはありません。

システム内の組織が動的な数量である場合、名前付きスコープが適切かどうかはわかりません。組織のリストが頻繁に変更される場合、それぞれに名前付きのスコープを設定する必要はありません。

于 2013-08-13T03:12:53.443 に答える