Проблема с ассоциацией has_many и own_to, не удается найти метод - PullRequest
0 голосов
/ 01 марта 2012

Это отношение много (предложение-отслеживание) к одному (партнеру).

Я получаю undefined method 'reference' for ProposalTracking:Class ошибку с @company.proposalTracking.reference

Когда я запускаю @company.proposalTracking, возвращаетсямне объект ProposalTracking.

Вот моя модель:

class ProposalTracking < ActiveRecord::Base
  set_table_name "Proposal_Tracking"
  belongs_to :partner
end

class Partner < ActiveRecord::Base
  has_many :proposalTracking
end

Я хочу получить атрибуты proposalTracking, такие как

@company = Partner.find(params[:id])
@company.proposalTracking.reference

, но это приводит кв ошибке undefined method 'reference' for ProposalTracking:Class

Я прочитал решения там, где они есть, потому что, поскольку это отношение «один ко многим», у партнера может быть несколько предложений на отслеживание, поэтому мне придется получить первое, используя.first но я попробовал это, и тут написано

You have a nil object when you didn't expect it!
The error occurred while evaluating nil.reference

Любая помощь будет высоко ценится!

1 Ответ

0 голосов
/ 01 марта 2012

Это должно быть

class Partner < ActiveRecord::Base
  has_many :proposal_trackings
end

, и вы можете получить к нему доступ через @company.proposal_trackings.Но на самом деле это массив экземпляров ProposalTracking (из-за has_many), который нужно перебрать, чтобы получить каждый атрибут

@company.proposal_trackings.map(&:reference)

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