我正在尝试找到一种方法来为计费应用程序设计一组 Rails 关系。它适用于从保险公司或付款人那里收到支票的供应商,然后将付款转发给他们的客户。
供应商按月平衡支票和付款,并根据该月内的活动向客户发送报告。
然而,“月”并不直接对应于日历月。取而代之的是,客户是按层交错的,因此报告并非都在每月的同一天到期。例如,在 1 月份,第 1 层客户的活动可能定义为 1 月 1 日至 1 月 31 日,第 2 层客户的活动定义为 1 月 7 日至 2 月 6 日,依此类推。
正好有3层。
每一层都有许多客户。
一个客户有很多支票。
到目前为止,如此简单。
我只是不知道如何有效地管理月份:
一张支票有一个存款日期,在该日期之前它将属于一个特定的“月份”。月份也必然由支票客户的等级决定。
由于存在三层,因此应该有三个“2013 年 1 月”月,每个月都有不同的开始和结束日期,但“月-年”和层的唯一性应该经过验证,使得第 1 层恰好有一个“一月” 2013 年,以此类推。
我希望路由使用户可以导航到clients_path,选择一个客户端,选择一个月份,然后创建一个新的检查,以便检查知道它属于哪个月份和客户端,例如我不能创建存款日期超出 client_month_path 定义的范围的新支票。
我认为我遇到的错误可能在于将每个模型定义为具有 has_many 或 belongs_to 关系,这样一个层就有很多客户,但也有很多个月。但是现在一张支票会有两个父母,那么我该如何将两者结合起来呢?