我有一个调用方法的问题。这是从我的控制器的一个代码:在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