Вызов методов в Rails - из контроллера или из представлений - PullRequest
0 голосов
/ 23 ноября 2011

У меня проблема с вызовом методов. Вот код одного из моих контроллеров:

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, но я получил NoMethodError - @controller равен нулю). Я также попытался отрисовать «оценки», но, конечно, пока он отображает представление, он не выполняет код.

1 Ответ

0 голосов
/ 23 ноября 2011

Возможно, вы ищете redirect_to вместо render

Redirect_to :action => 'grades'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...