2013-05-28 138 views
0

讓我先介紹一下,我對Ruby和Ruby on Rails非常陌生,並且找不到將工作的Ruby程序翻譯爲支持Web應用程序的清晰演示由Rails。將Ruby代碼轉換爲Ruby on Rails Web應用程序

紅寶石部分:我有一個簡單的類,允許用戶創建一個「棍子」,她可以設置一個螞蟻到任何開放的英寸點,其方向是隨機的上下移動。然後,用戶可以調用運行命令,並在螞蟻上下移動時觀察螞蟻,直到螞蟻從兩端摔下。然後用戶可以檢查杆上的螞蟻從其脫落的最小和最大時間。

Rails Part:因爲這個程序的輸出可以根據螞蟻的初始方向而改變,所以我看不到需要在很多實例上使用數據庫。

問題:我的模型類應該保存我已經寫好的所有代碼嗎?如果我想建立一個簡單的網頁,允許用戶創建一個棒,其中的數組然後顯示並不斷更新,然後添加每個螞蟻的名稱和位置,如何(以及從哪裏)我的方法書面被呼籲?

我可能完全錯了,但我懷疑我的代碼應該在模型包中,並且對我創建的方法的調用將在控制器中。這意味着我應該確保控制器類中的新方法接受一個整數(對於大小)。我還應該寫一個創建和設置ant的新方法,並接受一個字符串和整數(也在控制器中)。

的代碼是這樣:

def new(size) 
    @marchingant = Marchingant.new(size) 

    respond_to do |format| 
    format.html # new.html.erb 
    format.json { render json: @marchingant } 
    end 
end 

def createAndSet(loc, name) 
    @marchingant.createAndSet(loc, name) 
end 

(該方法中的模型類驗證輸入) 感謝您的幫助!

回答

2

模型包含狀態,控制器控制行爲和視圖顯示數據給用戶。因此,在這種情況下,您可能應該有一個Ant型號,或許一個Stick型號。螞蟻與棒有關,它的位置應該在棒的尺寸範圍內。因此,在index動作(或任何你要設置的位置)上,你會初始化一個Stick,並且當用戶與應用程序交互時,使用AJAX實例化新的Ant對象並將它們顯示在屏幕上。我不知道你如何設想createAndSet被調用。有助於更多瞭解用戶與應用程序的交互。

我的想法是老實說Rails根本就不需要介入。如果你沒有將它保存到數據庫中,並且用戶不需要稍後能夠檢索事件的狀態,那麼我會用Javascript編寫整個事情。您可以創建一個Ant和Stick對象,並公開附加到DOM節點的函數以供用戶進行交互。

+0

用戶只能對應用程序做兩件事:創建一定大小的棒,並沿着棒放置螞蟻名稱。 的創建在控制器類方法初始化棍子 「DEF創建 只會驗證PARAMS [:尺寸],:numericality => {:only_integer =>真} @stick =棒。新(PARAMS [:大小]) '末端 甲createAndSet方法也將存在該控制器內: ' 變形點焊createAndSet 只會驗證PARAMS [:位置],:numericality => {:only_integer =>真} @stick .createAndSet(params [:location],params [:name]) end' – NumenorForLife