我有三個表格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