下午好。我是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的所有付款。
如果我尝试在支付中做类似的事情:self.ride_request.ata_public。Provider_id获取提供商的id,给出错误:NoMethodError:未定义的方法' 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
改变
@payments = Payment.all
@payments = Payment
.joins(ride_request: :payment)
.where(payments: { provider_id: current_user.id })
。