неопределенный метод для модели - PullRequest
0 голосов
/ 27 февраля 2012

Я поддерживаю эту систему в течение почти 3 лет, и система использует рельсы 1.2.6 У меня проблема при добавлении новых атрибутов в модель. Я получаю неопределенный метод для ошибки модели.

Это работало ранее, но на этот раз я не смог это исправить, хотя когда я запускаю его в консоли, все в порядке.

Я создал 3 модели с помощью has_many: through. Я плохо понимаю миграцию, поэтому я всегда создавал таблицы вручную.

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

my 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, я получаю эту ошибку:

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

Пожалуйста, помогите указать что-то. Я смотрю на это неделями.

1 Ответ

2 голосов
/ 27 февраля 2012

Прежде всего, в рельсах ваши модели должны иметь подкласс от ActiveRecord.Я надеюсь, что вы сделали опечатку в вставке.потому что у вас есть лишний пробел в ваших вызовах has_many

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...