0
has_many:throughアソシエーションを作成しようとしています。ユーザーがアカウントページにアソシエーションを作成してドメインを追跡できるようにしています。has_many:throughアソシエーションを使用しているエラー
私は次のモデルがあります:
モデル/ user.rb
class User < ActiveRecord::Base
attr_accessor :password
attr_accessible :name, :email, :password, :password_confirmation
has_many :domain_followings, :foreign_key => "domain_id"
has_many :domains, :through => :domain_followings
モデル/ domain_followings.rb
class DomainFollowings < ActiveRecord::Base
attr_accessible :domain_id
belongs_to :user
belongs_to :domain
end
モデル/ domain.rb
class Domain < ActiveRecord::Base
attr_accessible :name
has_many :domain_followings, :foreign_key => "user_id"
has_many :users, :through => :domain_followings
を私はthのようなエラーを得るeは私の仕様に次の問題の
1) Users signup success should make a new user
Failure/Error: click_button
NameError:
uninitialized constant User::DomainFollowing
# ./app/controllers/users_controller.rb:32:in `show'
# ./spec/requests/users_spec.rb:32
# ./spec/requests/users_spec.rb:26
コードはここにある:
def show
@user = User.find(params[:id])
@title = @user.name
@domain = Domain.new if signed_in?
@domains = @user.domains.paginate(:page => params[:page])
end
初期化されていない一定のユーザー:: DomainFollowingは、他のコードのために数回繰り返されます。 理想的には、ドメインテーブルにドメインを作成できるようにする前に、domain_followingsテーブルにユーザアソシエーションを要求するようにしたいと思います。これは可能ですか?
私はそれが関係しているとは思わないが、私は、ユーザとドメインの 'has_many:domain_followings'命令の':foreign_key'宣言について困惑しています。彼らは逆さまになっているように見えます(それが意図的でなければ、取り除かなければなりません)。 – Baldrick
これは、関係を保存する際に問題を引き起こしていました。私はまた、関係のモデルが単数形ではなく複数形だったので問題を抱えていました。私はこれらのことを修正していますが、よりうまくいっていますが、まだ多くの機能に問題があります。 – Arosboro