在Rails中调用方法 - 从控制器或视图

时间:2011-11-23 11:59:23

标签: ruby-on-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

详细信息方法运行正常,点击“详情”视图中的“提交”按钮可创建候选人,我可以“链接到”下一页。

我真正想做的是:点击“提交”并自动转到下一个视图“成绩”(上面也会显示)。我认为在'详细信息中调用'成绩'的方法会起作用,但事实并非如此。出现“成绩”页面标题,但“详细信息”的视图仍然存在。

有没有办法做到这一点?可能从“详细信息”视图中调用“成绩”方法?我知道这不是最好的做法,但我被困住了。 (我试过@ controller.grades但是我得到NoM​​ethodError - @controller是nil)。我也试过渲染'成绩'但当然在呈现视图时,它不会执行代码。

1 个答案:

答案 0 :(得分:0)

您可能正在寻找redirect_to而不是渲染

Redirect_to :action => 'grades'