2011-11-23 53 views
0

我有一個調用方法的問題。這是從我的控制器的一個代碼:在Rails調用方法 - 從控制器或從視圖

class MethodsController < ApplicationController 
    def details 
    @title = "User Details" 
    @fname = params[:first_name] 
    @lname = params[:last_name] 
    @exam_no = params[:exam_no] 
    if @fname && @lname then 
     @candidate = Candidate.create({:first_name => @fname, :last_name => @lname,:exam_number => @exam_no})   
     grades #This method call doesn't work 
    end 

    end 

    def grades 
    @title = "Enter Grades" 
    @candidate = Candidate.find(:last) 
    @grades = params[:grades] 
    @candidate.update_attributes({:grades => params[:grades]}) 
    end 
end 

的詳細方法工作正常,點擊「詳細信息」視圖中的「提交」按鈕,創建一個候選人,我可以「的link_to」下一個頁面。

我真正想要做的是:點擊'提交',然後自動進入下一個'成績'(也顯示在上面)。我認爲在細節中調用'成績'的方法可行,但事實並非如此。 '成績'頁面標題出現,但'細節'的觀點仍然存在。

有沒有辦法做到這一點?可能從'細節'視圖調用'成績'方法?我知道這不是最佳做法,但我卡住了。 (我試過@controller.grades,但我得到一個NoMethodError - @控制器是零)。我也嘗試渲染'成績',但當然它呈現視圖時,它不執行代碼。

+0

@AlokSwain你並不需要顯式調用渲染,因爲它會呈現一個模板具有相同名稱作爲動作。 –

+0

@達思 - 哎呀。是啊..感謝糾正該死的腦痙攣。 –

+0

嗨,感謝您的回覆。是的,現在沒有電話在代碼中呈現。我只是說我嘗試了它,並且在呈現視圖時,它沒有執行相應方法中的任何代碼。 – user1061799

回答

0

你可能會尋找替代redirect_to的渲染的

Redirect_to :action => 'grades' 
+0

嗨。感謝您及時的回覆。 redirect_to以某種方式起作用。它重定向到指定的頁面,但不檢查名稱字段是否爲空。所以它讓一個「空白」的條目通過。 – user1061799

相關問題