下午好。我是 Rails 的新手,我正在使用谷歌翻譯在這里發帖。我有這 3 個表,以及它們的關系:
table: ata_publics
- ata_public_id
- provider_id
table: ride_requests
- ride_request_id
- hitchhiker_id
table: payments
payment_id
ride_request_id
關系是這樣的: 型號:支付
belongs_to :ride_request
型號:ride_request
belongs_to :ata_public
has_one :payment
belongs_to :hitchhiker, class_name: "User"
型號:ata_public
has_many :ride_request
has_one :payment
belongs_to :provider, class_name: "User"
我的問題是:我想列出與當前用戶具有相同 provider_id 的所有付款。
如果我嘗試在 Payments: self.ride_request.ata_public.provider_id 中執行類似的操作來獲取提供者的 id,則會出現錯誤:NoMethodError: undefined method `ride_request'
我不知道這是否令人困惑,但是當我列出所有付款時,它們都來了,我只想要來自 provider_id 的付款等于當前用戶。
def index
@payments = Payment.all
render json: Paginate.new(
pagination_params[:page],
pagination_params[:limit]
).call(@payments), status: 200
[![imagem_table]:https://i.stack.imgur.com/EIzx2.png
uj5u.com熱心網友回復:
改變
@payments = Payment.all
至
@payments = Payment
.joins(ride_request: :payment)
.where(payments: { provider_id: current_user.id })
應該管用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/495313.html
下一篇:無樹最寬路徑的Ruby演算法
