我有三个表格Business,Users和Subscriptions。目标是能够获得与用户相关的业务名称。结果应该是用户在订阅签署了表的使用关系数据库
列表
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 2014-11-01 22:30:02
@ user3882976对不起,我认为它应该是'includes(:business)'而不是'includes(:subscriptions =>:business)''。我已经更新了我的答案。 – 2014-11-03 19:39:20