在Rails中实现延迟关联

时间:2013-05-05 12:51:39

标签: ruby-on-rails forms variables temporary

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

我想用优雅的代码执行Rails Way,并在此过程中学习一些东西。

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

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

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

我该如何实现?临时变量?那会怎样?

同样,我对此很陌生,感谢您的支持。

米哈伊 TheActionGame.com

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我注意到你的动作代表什么,但即使你有一些基于时间的原则,也没有什么能阻止你以前保存动作(对于基于浏览器的应用程序,25分钟很长一段时间很多坏事都可能发生,比如刷新或连接失败。)

我的建议是立即创建(保存)操作,从而允许您的Insight链接到它。我会在Action中添加一个“状态”列,例如“new”(基本状态),“已确认”和其他(如果需要)。

然后,您只能使用“已确认”操作,并最终定期删除“新”操作(例如超过30分钟的所有操作,并且您的thresold为25)。

希望这有意义(无论如何,设计比Rails更多)。