【发布时间】:2023-03-23 02:12:01
【问题描述】:
我是新手。我刚开始学习更多关于使用 Ruby on Rails 的后端。 我有以下表格 - User 和 User_Transaction。
所以基本上我想要一个交易来保存有关发送者和接收者的信息。这在我个人看来更像是 has_and_belongs_to_many 关系。但是,我真的很困惑如何解决这个问题以及我应该如何包含 2 个外键。 我很想了解更多有关这方面的信息,如果有人帮助我,我会非常高兴:)。
迁移 用户
class CreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
t.integer :username
t.integer :password
t.timestamps
end
end
end
交易
class CreateTransactions < ActiveRecord::Migration[6.0]
def change
create_table :transactions do |t|
t.string :sender
t.string:receiver
t.decimal :amount
t.timestamps
end
end
end
模型
交易
class ::Transaction < ApplicationRecord
#We have two users per transaction 'Sender' and 'Receiver'
has_and_belongs_to_many :users
# belongs_to :sender, :class_name => 'User'
# belongs_to :receiver, :class_name => 'User'
end
用户
class User < ApplicationRecord
# has_many :accounts
# has_many :transactions
has_and_belongs_to_many :transactions
end
【问题讨论】:
-
从下面应用建议的解决方案 - 尚未找到解决方案。我想知道是否应该引入更多的cols?因为当我尝试通过以下方式创建事务记录时得到
ActiveRecord::AssociationTypeMismatch (User(#14620) expected, got 1 which is an instance of Integer(#4340))Transaction.create(:sender => "ff",:receiver => "ss", :amount = > 100)
标签: ruby-on-rails ruby database-design database-migration