2012-12-05 1 views
0
헤이 나는이 기능

before_destroy 정의 NoMethodError

class User < ActiveRecord::Base 
    belongs_to :group 
end 

class Group < ActiveRecord::Base 
    has_many :users 
    attr_accessible :name 
    validates_presence_of :name 

    before_destroy :set_default_group 

    private 
    def set_default_group 
    self.users.each do |u| 
     puts u # prints out <User:0x007fd678a85cb8> 
     u.group = self.first 
     u.save  
    end 
    end 
end 

그것은 나에게이 오류 NoMethodError을 제공과 함께 약간의 문제가 있어요

: 정의되지 않은 메서드`그룹 '#Group ID를 : 18, 나의 정의가 잘못된 것입니다 ? 당신이 #group 사용자 에하지 그룹 통화중인 때문에

오류 메시지은

NoMethodError: undefined method `group' for #<Group id: 18> 
from /Users/.../.rvm/gems/ruby-1.9.3-p194/gems/activemodel-3.2.8/lib/active_model/attribute_methods.rb:407:in `method_missing' 
    from /Users/.../.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.8/lib/active_record/attribute_methods.rb:149:in `method_missing' 
    from /Users/.../Developer/rails/.../app/models/group.rb:12:in `block in set_default_group' 
    from /Users/.../.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.8/lib/active_record/associations/collection_proxy.rb:89:in `each' 
    from /Users/.../.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.8/lib/active_record/associations/collection_proxy.rb:89:in `method_missing' 
    from /Users/.../Developer/rails/.../app/models/group.rb:10:in `set_default_group' 
+0

아마 '그룹'이 예약 된 키워드는? – MrYoshiji

+0

레일즈 콘솔에있을 때 u = Group.first를 사용하고 나서 u.group을 사용하여 사용자 그룹을 출력 할 수 있으므로 예약 된 키워드라고 생각하지 않습니다. – daiikota

+0

'u.group_id = Group.first.id' ? – MrYoshiji

답변