2011-11-23 93 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

相关问题