неопределенный метод `course_id 'для # <Set: {" 7 "}> - PullRequest
0 голосов
/ 06 февраля 2012

Хорошо, у меня есть таблица курсов, студентов и регистраций. Я разрешаю студенту войти в систему, и его информация хранится в переменной сеанса. Они могут искать курсы, выбирать те, которые им нужны, и помещают course_id в переменную сеанса. затем, после того как они разместили курсы на странице selected_courses, они могут нажать кнопку регистрации, чтобы зарегистрировать их для курсов. Предполагается, что он извлекает course_id из сеанса [: course] и student_id из сеанса [: student_id] и помещает их в одну таблицу, называемую регистрации. Course_id - это набор, и я знаю, что я должен пройти через каждый course_id и добавить его в таблицу, но не могу. Я разместил свой контроллер ниже, и вот файлы ФАЙЛЫ ЗДЕСЬ !!!! ЗДЕСЬ КОНТРОЛЛЕР С КОДОМ, КОТОРЫЙ ВЫСТАВЛЯЕТ COURSE_ID И STUDENT_ID В БАЗЕ ДАННЫХ СЕССИЙ:

  def show 
  @register = Registration.new
  while session[:course].course_id != nill do             
      @register.student_id = session[:student_id].student_id
      @register.course_id = session[:course].course_id       
  end     
   @register.save
  end

ЗДЕСЬ ВИДЕТСЯ, ЧТОБЫ ПОКАЗЫВАЕТ ДАННЫЕ ИЗ Базы регистрации:

<% @register.each do |register| %>
<tr>
   <td><%= register.student_id %></td>
   <td><%= register.course_id %></td>
</tr>
<% end %>

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 06 февраля 2012

Вы не можете помещать модели в свои session, поэтому вы не можете получить к ним доступ таким образом.Вам нужно загрузить все, что вам нужно, исходя из id, спрятанного там.

Вот что, по-вашему, вы снимаете:

def show 
  @register = Registration.new

  if (session[:course_id])
    if (course = Course.find_by_id(session[:course_id]))
      @register.student_id = course.student_id
      @register.course = course
    end
  end

  @register.save
end

Обязательно сохраняйте только курсИдентификатор в сеансе, а не в самом курсе.

...