我有一個調用方法的問題。這是從我的控制器的一個代碼:在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 - @控制器是零)。我也嘗試渲染'成績',但當然它呈現視圖時,它不執行代碼。
@AlokSwain你並不需要顯式調用渲染,因爲它會呈現一個模板具有相同名稱作爲動作。 –
@達思 - 哎呀。是啊..感謝糾正該死的腦痙攣。 –
嗨,感謝您的回覆。是的,現在沒有電話在代碼中呈現。我只是說我嘗試了它,並且在呈現視圖時,它沒有執行相應方法中的任何代碼。 – user1061799