2013-05-05 59 views
0

這是我面臨的編程挑戰。我在這是新的...在Rails中實現延遲關聯

我想這樣做Rails方式,優雅的代碼,並在過程中學習的東西。

在我的應用程序中,玩家跟蹤一個動作(半小時開始25分鐘的焦點)。動作#新形式在開始時加載,但直到25分鐘結束時才保存。最後2分鐘是回顧性的,幷包括一些必要的「如何去」的問題。

我現在要添加Insights表。我正在想象一個單獨的小「新洞察」形式,融入更大的「新行動」形式。無論何時,我都希望保存Insight。

我也希望Insight能夠與特定的Action相關聯......儘管Action尚未創建,但我不知道它會有什麼ID(其他人可能會在我之前記錄他們的Action做)。如果創建了Insight,但操作失敗,我還不確定該怎麼做......我可以允許不採取行動的洞察。

我該如何實施?一個臨時變量?那去哪裏?

再一次,我是全新的,感謝您的支持。

米哈伊 TheActionGame.com

回答

0

我留意你的行爲代表什麼,但即使你有一些基於時間的原則,沒有什麼阻止你的行動之前保存(對於基於瀏覽器的應用程序來說,25分鐘的時間很長,在此期間會發生很多不好的事情,比如刷新或連接失敗)。

我的建議是立即創建(保存)動作,從而使您的Insight與其鏈接。我會爲Action添加一個「狀態」列,其中包含「新」(基本狀態),「已確認」以及其他需要的內容。然後,您可以只對「已確認」操作進行操作,並最終定期刪除「新」操作(例如所有超過30分鐘的操作,並且您的預測操作爲25)。

希望這是有道理的(更多的設計比Rails,無論如何)。

+0

謝謝 - 它正在刪除與我的想法有點不同的新的! – bluemihai 2013-05-06 13:19:11

0

你可以作爲一個數組的列到你的行動「insight_ids」添加和執行它作爲一個has_and_belongs_to_many。 然後,當你有一個洞察力,記錄在陣列洞察的ID

+0

謝謝您花時間回答!我不確定具體的工作方式......如果我想要這樣做,我可能會找到鏈接,但是您能爲我推薦一個地方嗎? – bluemihai 2013-05-06 13:21:09