Ruby on rails 基于表值的ruby迭代 该项目:
我正在创建一个动态报告系统 指标定义了报告数据的用途。例如: “13起房屋火灾。” 管理员将通过一个表格将“房屋火灾”定义为一个指标,记者只需通过另一个表格添加“13” 但是,还有另一个级别:我希望报告在连接的数据点之间是详细的: “一月份发生13起影响42人(或16个家庭)的房屋火灾” 详细信息存储在表“metrics”中,数据存储在表“metrics\u data”中 以下是上面示例中的度量表:Ruby on rails 基于表值的ruby迭代 该项目:,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我正在创建一个动态报告系统 指标定义了报告数据的用途。例如: “13起房屋火灾。” 管理员将通过一个表格将“房屋火灾”定义为一个指标,记者只需通过另一个表格添加“13” 但是,还有另一个级别:我希望报告在连接的数据点之间是详细的: “一月份发生13起影响42人(或16个家庭)的房屋火灾” 详细信息存储在表“metrics”中,数据存储在表“metrics\u data”中 以下是上面示例中的度量表: metric_id | parentID | childID | prefix |
metric_id | parentID | childID | prefix | suffix | program_id
1 | 1 | 1 | | house fires | 1
2 | 1 | 2 | during | | 1
3 | 1 | 3 | affecting | individuals | 1
4 | 1 | 4 | (or | families | 1
基于句子的组织的关键是parentID-childID关系
以下是metrics_数据表:
metric_id | value | date
1 | 13 | 01/01/12
2 | nil | 01/01/12
3 | 42 | 01/01/12
4 | 16 | 01/01/12
目标是:
我想组织视图(通过parentID循环)以详细显示度量:
计划#1
(家长ID:1):“#在(日期)影响#个人(或#家庭)的房屋火灾”
(家长ID:2):“#在(日期)期间提供住宿#过夜(针对#个人)”
计划#2
(家长ID:1):“#在(日期)期间招募的新志愿者”
(家长ID:2):“#志愿者服务时间#在(日期)#
守则:
类程序
部分_program.html.erb(对于programs/index.html.erb):
#我如何根据parentID(按childID排序)在这里循环?
#
我知道我可以将其拆分为一个单独的表,并在两个表之间定义parentID和childID之间的关系,但添加另一个关系层似乎过于复杂。您可能应该将“parent”和“child”元素视为度量的属性,而不是尝试重用同一个模型。另一种方法是创建另一个称为“事件”的模型,这些事件与程序相关,度量与事件相关。我可能还会创建一个“度量类型”,而不是将前缀或后缀直接与每个记录关联 我认为,试图在同一级别上处理所有度量,并尝试使用parentID和childID循环它们来创建一个句子,这比仅仅在关系中添加另一层要复杂得多
希望这已经足够了……您可能应该将“父”和“子”元素视为度量的属性,而不是尝试重用同一个模型。另一种方法是创建另一个称为“事件”的模型,这些事件与程序相关,度量与事件相关。我可能还会创建一个“度量类型”,而不是将前缀或后缀直接与每个记录关联 我认为,试图在同一级别上处理所有度量,并尝试使用parentID和childID循环它们来创建一个句子,这比仅仅在关系中添加另一层要复杂得多
希望这已经足够了……好吧。我想可能有一个简单的解决办法。我会继续你的选择。谢谢@Vox.好的。我想可能有一个简单的解决办法。我会继续你的选择。谢谢@Vox。
class Program < ActiveRecord::Base
has_many :programs_metrics
has_many :metrics, through: :programs_metrics
end
class Metric < ActiveRecord::Base
has_many :programs_metrics
has_many :metrics, through: :programs_metrics
end
<% program.metrics.each do |metrics| %>
<div class="row offset1">
<% program.metrics.each do |pid| %> #how do I loop here based on parentID, sorted by childID?
<%= pid.prefix %>
#
<%= pid.suffix %>
<% end %>
</div>
<% end %>