0

3 つのモデル (プロファイル -> サブモデル -> サブサブモデル) が連結されたアプリケーションがあり、多くの関係があります。ログイン後に、プロファイルに関連付けられたレコードのみを取得するようにユーザーを制限しようとしています。私はレールに非常に慣れていません。これは、プロファイルモデルで試していたことです

has_many :submodels, :conditions => {:profile_id => self.id}

しかし、これは Profile.find_by_id(1).submodels で呼び出すと空のデータ セットを返します。または、代わりにコントローラーまたはビューでこれを処理する必要があります。モデルがこれを処理するのに適していると思いました。

4

2 に答える 2

1

has_many呼び出しに条件は必要ありません。デフォルトでは、プロファイルに関連付けられたサブモデルのみが返されます。

于 2010-04-27T17:51:08.483 に答える
0

クラスと外部/主キーにRails規則の名前を付けた場合は、

class Profile
  has_many :sub_models
end

Railsにそれを理解させます。

これは、次のことを前提としています。

  • プロファイルは、という名前のテーブルをラップします。このテーブルprofilesには、という名前の数値主キーがあります。id
  • SubModelは、という名前のテーブルをラップします。このテーブルsub_modelsには、という名前の数値外部キーがあります。profile_id
于 2010-04-27T17:52:30.243 に答える