2012-02-27 6 views
0

저는이 시스템을 거의 3 년 동안 유지했으며 시스템은 레일즈를 사용하고 있습니다. 1.2.6 모델에 새 속성을 추가 할 때 문제가 있습니다. 모델 오류에 대해 정의되지 않은 메서드가 나타납니다.모델에 대한 정의되지 않은 메소드

이전에는 작동했지만 이번에는 콘솔에서 실행할 때도 문제가 해결되지 않았습니다. 괜찮습니다.

나는 has_many : through 관계로 3 가지 모델을 만들었습니다. 나는 마이그레이션을 잘 이해하지 못하기 때문에 항상 수동으로 테이블을 만들었습니다.

Undefined method 'spucats=' for #<Casedf:....> 
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.6/lib/active_record/base.rb:1860:in `method_missing'  
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.6/lib/active_record/base.rb:1675:in `send' 
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.6/lib/active_record/base.rb:1675:in `attributes=' 
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.6/lib/active_record/base.rb:1674:in `each' 
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.6/lib/active_record/base.rb:1674:in `attributes=' 
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.6/lib/active_record/base.rb:1508:in `initialize_without_callbacks' 
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.6/lib/active_record/callbacks.rb:225:in `initialize' 
/home/jaz/dfp/app/controllers/casedf_controller.rb:89:in `new' 
/home/jaz/dfp/app/controllers/casedf_controller.rb:89:in `createcase' 
/usr/bin/mongrel_rails:19:in `load' 
/usr/bin/mongrel_rails:19 

지점 뭔가를 도와주세요 :

class Casedf < ActiveRecord::Base 
has_many :casespus 
has_many :spucats, :through => :casespus 
end 

class Spucat < ActiveRecord::Base 
has_many :casedfs, :through => :casespus 
has_many :casespus 
end 

class Casespu < ActiveRecord::Base 
belongs_to :casedf 
belongs_to :spucat 
end 

내 new.rhtml는

<td>Category<img src="/main/images/asterick1.gif" height="10" width="10" alt=""></td> 
<td>:</td> 
<td><select name="case[spucats][]" multiple> 
     <option value="" selected="selected">Please Select</option> 
      <% @spus.each do |category|%> 
     <option value="<%= category.id%>"> 
      <%= category.name%> </option> 
     <%end%> 
    </select> 
</td> 

내가 새 Casedf을 만들려고,이 오류가 발생합니다. 나는 이것을 수 주간 보았다.

답변

2

우선, 레일즈에서 모델은 ActiveRecord에서 서브 클래스해야합니다. 붙여 넣기에 오타가 있었기를 바랍니다. 당신 has_many 호출에 여분의 공간이 있기 때문에

+0

그가 여기에 모델을 잘못 입력했다고 가정합니다. 그렇지 않은 경우 유효성 검사시로드시에 메소드 오류가 발생하기 때문입니다. 내 베팅은 "수동 테이블 생성"에 문제가되고 있습니다 ... –

+0

예, 많은 불완전한 코드와 오정렬이 있습니다. 죄송합니다. 정확할까요? – janida

+0

marc : 수동 테이블 생성? 하지만 스크립트/콘솔을 할 때, casedf는 잘 만들었습니다. 나는 다른 사람들을 위해 수동으로 했어.하지만 그들은 모두 괜찮 았어. 설명해 .Q. – janida

관련 문제