如何在控制器中的多个表之间获取(匹配)数据?

时间:2018-11-12 09:24:00

标签: ruby-on-rails ruby

问题:如何从单独的控制器和模型中获取控制器中彼此关联的数据?

问题:我需要我的@ order.seller_id(与@ user.id匹配),然后需要@ user.stripe_token。

所以我最终需要来自正确的user_id的@ user.stripe_token,该ID通过@ order.seller_id进行匹配

订单中有一个Seller_id,它是一个用户ID。在所有附加了用户的表中,此ID均相同。因此,为了汇款,我需要与Seller_id关联的正确@user

这是我的orderscontroller需要的一段代码: (更新订单时,会收取费用并向卖家收取佣金)可能无法正确设置100%atm,但这是我目前所在的位置。

charge = Stripe::Charge.create({
    :amount      => (@order.order_price).to_i * 100,
    :description => 'Rails Stripe customer',
    :currency    => 'usd',
    :customer => @order.stripe_customer_token,

    })

transfer = Stripe::Transfer.create({
    application_fee_percent: 75
    :currency    => 'usd',
    destination: ---here's where i need the correct @user.stripe_token ---,
    transfer_group: "notes_328324"
    })

1 个答案:

答案 0 :(得分:1)

在Order类中,您可以...

belongs_to :seller, foreign_key: :seller_id, class_name: 'User'

完成此操作后,Rails会了解Order和User之间的关系,因此您可以...

@order.seller.stripe_token