【发布时间】:2012-06-16 22:49:48
【问题描述】:
我正在开发一个应用程序来计算债务以及谁欠谁等等。
目前它是这样工作的:
create_table "debts", :force => true do |t|
t.string "amount"
t.integer "payer_id"
t.integer "payee_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "people", :force => true do |t|
t.string "name"
t.integer "bank"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
class Debt < ActiveRecord::Base
attr_accessible :amount, :payee_id, :payer_id
belongs_to :payee, :class_name => 'Person'
belongs_to :payer, :class_name => 'Person'
end
class Person < ActiveRecord::Base
attr_accessible :amount, :payee_id, :payer_id
has_many :debts_owed, :class_name => Debt, :foreign_key => "payee_id"
has_many :debts_to_pay, :class_name => Debt, :foreign_key => "payer_id"
end
它正在工作,但我知道必须有一种更简单的方法来表示同一个模型的多个关联?我一直在阅读 has_and_belongs_to_many,这看起来是正确的,但说实话我迷路了。
任何帮助将不胜感激!
谢谢
【问题讨论】:
-
现在正常了,注意,
class_name选项应该是字符串,即:class_name => 'Person'
标签: ruby-on-rails has-many belongs-to has-and-belongs-to-many