我有两个表/模型(用户和假日)。用户有一定数量的假期。在假日模型中,用户可以预订多个假期(整数)。
实施例: 1)约翰总共有10个假期积分 2)约翰预订4个假期
结果:John剩下6个假期
我知道这与在User中添加方法并将假期传递到其中有关。
如何扣除节假日信用卡预订的假期?
答案 0 :(得分:1)
如果每个用户都有holiday
属性/字段,那么通过两个表之间的关联可以计算出值。
设置数据库时,可以定义假日信用的默认值。例如:
如果要添加一列来保存值:
add_column :users, :holiday_credit, :integer, :default => 10
现在每个用户都会在您的数据库中拥有默认的假期信用。这也可以在对象初始化期间的对象创建时完成。
要更新值,User模型中的方法可以这样写:
class User < ActiveRecord::Base
def calculate_holiday_credits
self.holiday_credit = default_value - Holiday.find(self.id).count
end
end
可以修改该功能以满足您的需求,但我希望这能为您提供一般的想法。
简而言之,您希望在另一个表格中搜索用户模型的ID显示的次数,并使用结果进行计算。
预订机制与此相反。在假日表中,您希望创建一个方法,在预订假期的用户的数据库中创建一个条目,这样当用户运行上面详述的方法时,该值将适当更新。
答案 1 :(得分:1)
在用户模型中:
# assuming, you have a method `holidays_booked`,
# that returns the number of booked holidays
def holidays_left
10 - holidays_booked
end
就是这样。