Rails 3.2 связывает методы взаимодействия сервера и консоли - PullRequest
1 голос
/ 29 февраля 2012

Я пытаюсь обновить приложение Rails 2.3.5 до Rails 3.2.1.Я знаю, что я должен был сделать 3.0 и 3.1 в первую очередь.Однако ...

Я испытываю очень странную проблему, когда пытаюсь получить доступ к связанной модели с помощью автоматически созданного метода доступа.Например, у меня есть модели «Пользователь» и «Участник», в которых «Пользователь» имеет одного члена, а «Член» принадлежит пользователю.Вызов User.first.member приведет к сбою сервера webrick без сообщения об ошибке.То же самое происходит в консоли со следующим выводом.

irb(main):003:0> User.first.member
←[1m←[36mUser Load (0.0ms)←[0m  ←[1mSELECT `users`.* FROM `users` LIMIT 1←[0m

C:\git\web_benebridge\website>rails c

Оба объекта существуют в базе данных и правильно связаны, и это прекрасно работает в Rails 2.3.5.

Модель пользователя определяется следующим образом:

class User < ActiveRecord::Base

    require 'digest/sha2'

    belongs_to  :association
    has_one  :member
...

И модель Member выглядит следующим образом:

class Member < ActiveRecord::Base
    belongs_to  :user
    belongs_to  :association
...

Показанная выше модель ассоциации начинает свое определение следующим образом:

class Association < ActiveRecord::Base

    has_many :association_benefits
    has_many :association_kases
    has_many :benefits
    has_many :contacts
    has_many :content_items
    has_many :members
    has_many :users
...

Я пробовал различные другие модели, которые имеют ассоциации, и некоторые изметоды доступа к ассоциации работают, а другие нет.Действительно неприятно, что вообще не возникает никаких ошибок, среда просто завершается.

Одна из проблем, с которыми я сталкиваюсь, заключается в том, что наличие модели с именем Association может сбивать с толку.Кто-нибудь еще сталкивался с проблемой в более поздних версиях Rails?

Любая помощь в решении этой проблемы будет принята с благодарностью.

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