0

这是我面临的一个编程挑战。我是新来的...

我想用优雅的代码用 Rails 方式来做这件事,并在这个过程中学到一些东西。

在我的应用程序中,玩家跟踪一个动作(从半小时开始,25 分钟的焦点)。action#new 表单在开始时加载,但直到 25 分钟结束时才保存。最后 2 分钟是回顾,包括一些必需的“进展如何”问题。

我现在想添加一个 Insights 表。我正在描绘一个单独的、小的“新洞察”形式,它融入了更大的“新行动”形式。我想在任何时候保存洞察力。

我还希望 Insight 与该特定动作相关联......即使尚未创建动作,而且我不知道它将具有什么 id(其他人可能会在我之前记录他们的动作)。如果创建了 Insight 但 Action 失败了,我还不确定该怎么做……我可以允许 Action-less Insights。

我该如何实施?临时变量?那会去哪里?

再说一次,我在这方面是全新的,我感谢您的支持。

米海 TheActionGame.com

4

2 回答 2

0

您可以将一列作为数组添加到您的操作“insight_ids”中,并将其实现为 has_and_belongs_to_many。然后当你有洞察力时,将洞察力的id记录在数组中

于 2013-05-05T13:15:40.757 回答
0

我很清楚您的操作代表什么,但是即使您有一些基于时间的原则,也没有什么能阻止您之前保存操作(对于基于浏览器的应用程序,25 分钟是很多时间,在此期间很多可能会发生不好的事情,例如刷新或连接失败)。

我的建议是立即创建(保存)Action,从而让您的 Insight 链接到它。如果需要,我会在 Action 中添加一个“状态”列,其中包含“新”(基本状态)、“已确认”等内容。

然后,您可以只处理“已确认”操作,并最终定期删除“新”操作(就像所有超过 30 分钟的操作,阈值为 25)。

希望这是有道理的(无论如何,比 Rails 更多的设计)。

于 2013-05-05T13:16:38.747 回答