私は、商品、ショッピングカート、支払いを含むアプリケーションをまとめています。あなたは/ productsに行くことでカートに商品を追加することから始めます。次に/ cartに移動すると、システムはチェックアウトの準備が整った商品のリストを入力します。計画は、カートテーブル内の「合計価格」属性を支払いテーブルにリンクすることです。ショッピングカートの「合計価格」属性を支払い設定に接続
別のテーブルの2つの属性をリンクして同じにするにはどうすればよいですか?私は同じことが必要な2つの属性、「総価格」と「金額」をマークしました。
create_payments.rb
class CreatePayments < ActiveRecord::Migration
def change
create_table :payments do |t|
t.string :first_name
t.string :last_name
t.string :last4
***t.decimal :amount, precision: 12, scale: 3***
t.boolean :success
t.string :authorization_code
t.timestamps null: false
end
end
end
create_order_items.rb
class CreateOrderItems < ActiveRecord::Migration
def change
create_table :order_items do |t|
t.references :product, index: true, foreign_key: true
t.references :order, index: true, foreign_key: true
t.decimal :unit_price, precision: 12, scale: 3
t.integer :quantity
***t.decimal :total_price, precision: 12, scale: 3***
t.timestamps null: false
end
end
end
それ以上のファイルが問題のトラブルシューティングを行うために必要とされる場合は私に知らせてください。どんな種類の援助もありがとうございます!
あなたはどういう意味ですか? – Minato
私は基本的に、paymentテーブルの "amount"属性をorder_itemsテーブルの "total_price"属性に置き換えたいと思っています。したがって、ユーザーが支払いを行うと、購入した製品に基づいて支払う金額が入力されます。 – nomad
お支払いの中に 'payments'の中の' Order'と 'has_one'を参照する' belongs_to'参照が必要だと思います。そうすれば、単に 'OrderItems'のすべての価格を取得し、' amount'属性のように設定することができます。 'payment.amount = payment.order.order_items.select(" total_price ")。reduce(&:+)' – Minato