首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >其他模型中的更新属性

其他模型中的更新属性
EN

Stack Overflow用户
提问于 2016-06-02 21:49:40
回答 2查看 263关注 0票数 0

我有两张桌子/型号(用户和假日)。用户有一定数量的假期。在假日模型中,用户可以预订多个假日(整数)。

例句: 1)约翰总共有10天的假期,2)约翰的书4假期

结果:约翰还有6天假期。

我知道这与在用户中添加一个方法并将假期传递到其中有关。

我该如何从假期信贷中扣除预订的假期呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-03 12:16:29

在In用户模型中:

代码语言:javascript
复制
# assuming, you have a method `holidays_booked`,
# that returns the number of booked holidays
def holidays_left
  10 - holidays_booked
end

就这样。

票数 1
EN

Stack Overflow用户

发布于 2016-06-02 22:03:47

如果每个用户都有一个holiday属性/字段,那么可以通过两个表之间的关联来计算值。

在设置数据库时,可以定义假日信用的默认值。例如:

如果要添加一个列来保存该值:

代码语言:javascript
复制
add_column :users, :holiday_credit, :integer, :default => 10

现在,每个用户都将在您的数据库中拥有默认的假日信用。这也可以在对象初始化期间在对象创建时完成。

要更新值,可以编写用户模型中的方法,如下所示:

代码语言:javascript
复制
class User < ActiveRecord::Base
  def calculate_holiday_credits
    self.holiday_credit = default_value - Holiday.find(self.id).count
  end
end

该函数可以修改以满足您的需要,但我希望这能给您一个大致的想法。

简而言之,您希望在另一个表中搜索用户模型的id出现的次数,并根据结果进行计算。

预订机制与此正好相反。在假日表中,您希望创建一个方法,该方法与预订假日的用户一起在数据库中创建一个条目,以便当用户运行上面详细介绍的方法时,值将被适当更新。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37602730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档