Генератор железнодорожных схем не работает с «NoMethodError» - PullRequest
1 голос
/ 29 декабря 2008

После внесения нескольких изменений в приложение для рельсов, над которым я работаю, железная дорога перестала работать. Подробный вывод дает некоторые подсказки. Интересно, сталкивались ли другие люди с этим и есть ли какие-то указатели для решения этой проблемы. Это ошибка моделирования данных? Это проблема с железной дорогой? Журнал ошибок следует ...

railroad -vM Loading application environment
Loading application classes
Generating models diagram

...[snip]...

    Processing Person
        Processing model association authorships
        Processing model association person_image
        Processing model association publications
/usr/lib/ruby/gems/1.8/gems/activerecord-2.1.2/lib/active_record/reflection.rb:224:in `derive_class_name': You have a nil object when you didn't expect it! (NoMethodError)
The error occurred while evaluating nil.class_name
    from /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.2/lib/active_record/reflection.rb:106:in `class_name'
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:134:in `process_association'
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:102:in `process_class'
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:101:in `each'
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:101:in `process_class'
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:27:in `generate'
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:26:in `each'
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:26:in `generate'
    from /usr/lib/ruby/gems/1.8/gems/railroad-0.5.0/bin/railroad:47
    from /usr/bin/railroad:19:in `load'
    from /usr/bin/railroad:19

Ответы [ 2 ]

1 голос
/ 08 апреля 2009

Возможно, у вас есть has_many: через ассоциацию, которая неправильно указана, что-то вроде

Person has_many: публикации,: through => ...,: source => ...

убедитесь, что у вас есть источник там!

1 голос
/ 29 декабря 2008

Я хочу сказать, что в вашей модели Person есть случайный "has_many" или "own_to" или другой вызов ассоциации ...

Полагаю, ваша модель выглядит примерно так:

class Person
  has_many :authorships
  has_many :images
  has_many :publications
  has_many #with nothing after it
  # the rest
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...