man*_*nis 5 ruby-on-rails ruby-on-rails-4
我试图记录用户通过用户和交易之间的多对多关系进行的每次购买,并通过连接表"transactuins_users"链接它们.但我有两个问题,首先,我需要提供创建!对于被称为id的对象的方法,我认为Rails应该在给定关联的情况下自己解决这个问题.
此外,每当我调用purchase方法时,我都会收到错误"无效的单表继承类型:buy不是Transaction的子类"
class User < ActiveRecord::Base
# Associations
has_and_belongs_to_many :transactions
def purchase(package)
return false unless funds_available?(package) and !owns?(package)
package.with_lock do
# Makes transaction
package.user_id = id
package.save!
withdraw(package.cost)
# Records transaction
values = {user_id: id, type: "buy", cost: package.cost}
transactions.create values
end
end
class Transaction < ActiveRecord::Base
# Associations
has_and_belongs_to_many :transactions
# Validations
validates :user_id, :cost, presence: true
Run Code Online (Sandbox Code Playgroud)