Я прочитал много руководств, но я не могу понять, почему это мой метод не работает:Рендер парциальное от Helper в Rails 4
module StudentsHelper
def get_training_projects
@training_projects_student = TrainingProject.where(student_id: @student.id)
@training_projects_student.count
end
def get_training_courses
@training_course_student = TrainingCourse.joins(:courses_students).where(courses_students: { student_id: @student.id })
@training_course_student.count
end
def storico_studente
n = get_training_courses + get_training_projects
i_projects = 0
i_courses = 0
until i_courses + i_projects < n
if @training_course_student[i_courses].data_inizio < @training_projects_student[i_projects].data_inizio
render partial: "training_course", collection:@training_course_student[i_cousers]
i_courses += 1
else
render partial: "training_project", collection: @training_course_student[i_projects]
i_projects += 1
end
end
end
end
«_training_project.html.erb» и «_training_course.html .erb "находятся в папке студентов.
Update:
В приведенном выше коде, цикл был не прав, никогда не входит.
def storico_studente
n_training_courses = get_training_courses
n_training_projects = get_training_projects
n = n_training_courses + n_training_projects
i_projects = 0
i_courses = 0
while i_courses + i_projects < n
if @training_course_student[i_courses].nil?
render partial: 'students/training_project', collection: @training_course_student[i_projects]
i_projects += 1 if i_projects < n_training_projects
elsif @training_projects_student[i_projects].nil?
render partial: 'students/training_course', collection: @training_course_student[i_courses]
i_courses += 1 if i_courses < n_training_courses
elsif @training_course_student[i_courses].data_inizio < @training_projects_student[i_projects].data_inizio
render partial: 'students/training_course', collection: @training_course_student[i_courses]
i_courses += 1 if i_courses < n_training_courses
else
render partial: 'students/training_project', collection: @training_course_student[i_projects]
i_projects += 1 if i_projects < n_training_projects
end
end
end
теперь рабочий цикл нормально, я могу видеть правильный вызов в журналах:
Rendered students/_training_course.html.erb (0.0ms)
Rendered students/_training_project.html.erb (0.0ms)
Rendered students/_training_course.html.erb (0.0ms)
файлы содержат только (на данный момент)
<div>ptoject</div>
конец
<div>course</div>
это объясняет время загрузки (0,0ms)
Но это все еще не работает!
oops, это неловко! Спасибо, я обновил сообщение, потому что, несмотря на то, что вызов в журнале завершен, все равно не работает ... –
Эй, мое обновленное решение работает для вас? – dhouty
Могу ли я вызвать метод следующим образом: <% = storico_studente%>? –