1

私はこの答えを使用してそのような関係を作りました:Ruby on Rails has_manyは、自己参照のフォロー/フォロワー関係を介して

だから私は次のモデルを持っています:

class User < ActiveRecord::Base

  has_many :is_trustings
  has_many :trusted_users, :through => :is_trustings, :source => 'trusted'

  has_many :trusters, :class_name => 'IsTrusting', :foreign_key => 'trusted_id'
  has_many :trusting_users, :through => :trusters, :source => :user

end

class IsTrusting < ActiveRecord::Base
  belongs_to :user
  belongs_to :trusted, :class_name => 'User'
end

コンソールで使用する場合は、すべて問題ありません。次に、クライアントがユーザーのフォロワーを取得できるように、ネストされたルートを作成します。

しかし、それは私が期待するようには機能しません...

ほら、私のroutes.rbで私は書いた

resources :user do
   resources :is_trusting
   resources :trusted_users
   resources :trusting_users
end

Wichは次のようなルートを作成します:

/users/:user_id/is_trustings(.:format)       is_trusting#index

これは中間モデルなので大丈夫です

今、私は埋め込まれたmodelsnが欲しいのですが、これが私が得るものです:

/users/:user_id/trusted_users(.:format)       trusted_users#index
/users/:user_id/trusting_users(.:format)      trusting_users#index

TrustedUsersControllerがないため、これは明らかに機能しません。私はこのルートがUserControllerに行くことを望んでいません。

モデルには:class_name=>'Users'のような組み込みのショートカットが必要です。

誰かがそれを知っていますか?:)

4

1 に答える 1

1

私が質問を理解している限り、あなたはただ:controllerキーを使うことができます

#....
 resources :trusted_users, :controller => :users
#..

あなたがそれを求めたことを願っています)

于 2013-01-28T00:13:31.957 に答える