У меня проблема с вызовом методов. Вот код одного из моих контроллеров:
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 равен нулю). Я также попытался отрисовать «оценки», но, конечно, пока он отображает представление, он не выполняет код.