2015-09-21 5 views
0

Student Модель:Rails создание через через ассоциацию

class Student < ActiveRecord::Base 
    has_many :courses 
end 

курс Модель:

class Course < ActiveRecord::Base 
    belongs_to :student 
end 

Как создать курсы через студентов, так что я получаю [идентификатор курса: 1, student_id: 1]. Я пробовал следующий путь, но это дает мне student_id ноль.

Контроллер курс:

@course = Student.find(params[:id]) 
@course = @course.new(params[:course]) 

ответ

0

Есть несколько незначительных проблем с вами решением, но если я хорошо понял, что вы пытаетесь сделать, который в основном создает объект курса, связанный с Студента внутри каких-либо действий на courses_controller , все, что вам нужно сделать, это добавить эти строки поели действие courses_controller:

courses_controller:

class CoursesController < ApplicationController 

    ... 

    def new 
    @student = Student.find(params[:student_id]) 
    @course = Course.new student_id: @student.id 
    end 

    def create 
    @course = Course.new(params[:course]) 
    @course.save 
    end 

    ... 

end 

Внутри вашего представления о том, что вы вызываете новый_course_path, вы должны передать значение: student_id, как в этом примере:

new_course_path(student_id: @student.id) 
Смежные вопросы