У меня есть три таблицы Бизнес, Пользователи и Подписки. Цель состоит в том, чтобы иметь возможность получать имена компаний, связанные с пользователем. Результат должен быть массив имен бизнеса, которые пользователь подписался на в подпискахИспользование реляционной базы данных
Список таблиц
Schema | Name | Type |
--------+-------------------+-------
public | businesses | table
public | subscriptions | table
public | users | table
предприятия Таблица
Column | Type
------------+-----------------------------
id | integer
name | character varying(255)
created_at | timestamp without time zone
updated_at | timestamp without time zone
Бизнес-модель
class Business < ActiveRecord::Base
end
Подписки Таблица
Column | Type
-------------+-----------------------------
id | integer
user_id | integer
business_id | integer
created_at | timestamp without time zone
updated_at | timestamp without time zone
Подписка Модель
class Subscription < ActiveRecord::Base
belongs_to :user
belongs_to :business
end
Пользователи Таблица
Column | Type
-----------------+-----------------------------
id | integer
username | character varying(255)
password_digest | character varying(255)
email | character varying(255)
created_at | timestamp without time zone
updated_at | timestamp without time zone
пользователя Модель
class User < ActiveRecord::Base
has_secure_password
has_many :subscriptions
end
Rails консоль
u = User.find(1)
u.subscriptions.businesses.name
Response: undefined method `business'
Я получил эту ошибку. Ассоциация с именем ' подписки ' не была найдена в Подписке; возможно, вы это написали? – user3882976
@ user3882976 Извините, я думаю, что это должно быть 'include (: business)' вместо 'includes (: subscriptions =>: business)'. Я обновил свой ответ. –