2012-12-29 20 views
0

我決定在週末計算出這個算法(如果你想這麼稱呼的話),我想我需要cron作業或者clockwork的幫助。使用cron作業的Ruby算法幫助

這裏是我的邏輯:

當添加了一本書,它需要被卡在「排隊長龍」或「隊列狀態」,並只「發表」在本週的頂部。在本週的頂部,如果沒有圖書已經「排隊」,請添加新的「已發佈」圖書&使表單再次可用(一旦圖書已經排隊等待下一次發佈,表單將隱藏)。當我說週末時,我的意思是一本書必須每7天發佈一次,從創建用戶帳戶的日期開始。

爲了給出一些背景知識,我創建了一個應用程序,鼓勵用戶在2013年期間每週閱讀一本書(是的,這個東西必須在星期一發布!)。他們可以添加一本他們將在下週閱讀的書籍,並在閱讀該書籍後將其狀態更改爲「閱讀」。如果他們在添加之後的7天內沒有將狀態更改爲「閱讀」,它會自動下移並顯示爲「未讀」,並添加新的空白圖書(就像我之前解釋的那樣)。

整體添加書籍並將狀態更改爲讀取/未讀已完成。我只是尋找幫助設置7天增量書籍添加和「隊列」。

一些洞察到我的代碼:

我有belongs_to用戶在books控制器&模型。我的用戶模型has_many書籍。

我正在通過用戶show視圖添加並顯示用戶的圖書。

我確定有些事情我會離開,這將有助於更好地解釋我的環境,所以請問我:)謝謝!

+1

請通過發佈[格式正確](http://superuser.com/editing-help)代碼來改善您的問題。此外,請發佈您收到的任何實際錯誤消息,以及您迄今採取了哪些措施來研究或解決您的問題。 –

+0

我哈代發佈了任何代碼。不知道它沒有「格式正確」。我正在尋找更多更高級別的答案,而不是直接「這是執行此操作的代碼」 –

回答

0

我不認爲你需要這樣的時間工作。

我會做的是給每本讀/未讀的書添加一個狀態。然後在模型中編寫一個方法來檢查頁面加載並修改顯示的視圖或控制器數據。

Rails/Ruby有一些不錯的日期/時間助手,你可以說date1 < = 7.days.ago。

有什麼理由爲什麼這種方法不起作用?

+0

是的,我已具有讀/未讀狀態。不確定我是否可以在7天前專門說,因爲如果用戶在本週中間添加了書籍,該怎麼辦?我想我還需要一種方法來添加一本書,如果一個人沒有「排隊」,這將通過時間工作來完成嗎? –

+0

Rails在每本書上都有一個created_at和modified_at字段。你可以使用這些。如果這些不適合你,你也可以創建自己的。 –

+0

好吧,意識到這是錯誤的語法,我可以做這樣的事情嗎? ''如果@ user.books是''%。created_at> @ user.books.count * 7%> \t <! - 顯示排隊的書 - > \t <% else %> \t <! - 節目表 - > <% end %>'''這基本上說,如果這本書在其他書籍之前創建,顯示它排隊。但是,那不是不對,因爲如果我想這樣做,所有我必須要做的就是調用''''''''''。哎呀! –