Я пытаюсь создать следующее:
Модели : пользователь, учетная запись, транзакция логи c: у пользователя много учетных записей. Счета имеет много транзакций. У пользователя много транзакций через аккаунты.
МОДЕЛИ
class User < ApplicationRecord
has_many :accounts
has_many :transactions, :through => :accounts
End
class Account < ApplicationRecord
belongs_to :user
has_many :transactions
end
class Transaction < ApplicationRecord
belongs_to :account
end
МИГРАЦИИ
class CreateUsers < ActiveRecord::Migration[5.0]
def change
create_table :users do |t|
t.string :name
t.timestamps
end
end
end
class CreateAccounts < ActiveRecord::Migration[5.0]
def change
create_table :accounts do |t|
t.string :account_id
t.belongs_to :user, index:true
t.timestamps
end
end
end
class CreateTransactions < ActiveRecord::Migration[5.0]
def change
create_table :transactions do |t|
t.string :account_id
t.decimal :amount, :precision => 8, :scale => 2
t.belongs_to :account, index:true
t.timestamps
end
end
end
Я могу создать учетную запись для пользователя со следующим кодом:
user = User.create(name: "John")
user.accounts.create(account_id: "123")
Но когда дело доходит до транзакций, используя те же логи c:
user = User.create(name: "John")
user.accounts.create(account_id: "123")
accounts.transactions.create(account_id: "123", amount: 10)
Я получаю ошибку
NoMethodError: неопределенные транзакции метода для учетной записи