имеет много проблем - PullRequest
       22

имеет много проблем

0 голосов
/ 27 февраля 2011

У меня много знакомых с моими группами и гостями.Вот модели:

class Group < ActiveRecord::Base  
  has_many :memberships, :dependent => :destroy
  has_many :guests, :through => :memberships

  def self.find(group)
    self.find_by_name(group).guest.collect{ |x| x.name  }
  end
end

class Guest < ActiveRecord::Base
  has_many :memberships, :dependent => :destroy
  has_many :groups, :through => :memberships
end

class Membership < ActiveRecord::Base
  belongs_to :guest
  belongs_to :group
end

Я проверяю в консоли, и вот результаты:

ruby-1.9.2-head :001 > Group.first.guests
=> [] 

ruby-1.9.2-head :002 > Guest.first.groups
(Object doesn't support #inspect)
=> 

Почему не работает второй?Я пытался проверить класс групп, но он всегда возвращает ошибку:

ruby-1.9.2-head :005 > Guest.first.groups.class
NoMethodError: undefined method `guest' for nil:NilClass

Может кто-нибудь помочь мне с этим?На самом деле я просто пытаюсь следовать этому руководству: http://millarian.com/programming/ruby-on-rails/quick-tip-has_many-through-checkboxes/

Ответы [ 2 ]

1 голос
/ 27 февраля 2011

Ваш find метод класса использует guest вместо guest :

self.find_by_name(group).guest.collect{ |x| x.name  }

Я также заметил, что вы переопределяете встроенный метод ActiveRecord, найдите, что не рекомендуется.

0 голосов
/ 27 февраля 2011

Это происходит потому, что Guest.first возвращает ноль. создайте гостевой объект и попробуйте его.

...