Я недавно столкнулся с NoMethodError , когда я вызываю любой метод на organization.subscriptions
NoMethodError at /organizations/1
undefined method `class_name' for nil:NilClass
Did you mean? class_eval
Похоже, имя_класса вызывается для чего-то, что не существует.Но поскольку есть соглашение и подписка, этого не должно произойти.Я смотрю на свой код, но не вижу ошибки.Кто-нибудь может помочь?
# organization.rb
class Organization < ApplicationRecord
has_many :deals
has_many :subscriptions, through: :deals, source: :initialized_subscriptions
end
# deal.rb
class Deal < ApplicationRecord
belongs_to :organization
has_many :initialized_subscriptions, foreign_key: :initial_deal_id, class_name: 'Subscription'
end
# subscription.rb
class Subscription < ApplicationRecord
belongs_to :initial_deal, class_name: 'Deal'
end
Вот таблицы
organizations
+----+----------+
| id | name |
+----+----------+
| 1 | Org name |
+----+----------+
deals
+----+------------+-----------------+
| id | name | organization_id |
+----+------------+-----------------+
| 1 | First Deal | 1 |
+----+------------+-----------------+
subscriptions
+----+-----------------+
| id | initial_deal_id |
+----+-----------------+
| 1 | 1 |
+----+-----------------+
Большое спасибо за помощь, ребята!