Когда я захожу на курсы / новую страницу в моем приложении heroku, возникает ошибка о том, что метод курсов не определен.Кроме того, когда я создаю курс на консоли, он не имеет идентификатора или create_at.
Контроллер курсов:
class CoursesController < ApplicationController
def home
@course = current_user.courses.find(params[:id])
end
def new
@course = current_user.courses.build
end
def create
@course = current_user.courses.build(course_params)
if @course.save
flash[:success] = "Course Created"
redirect_to coursehome_path
else
render 'new'
end
end
private
def course_params
params.require(:course).permit(:name)
end
end
Модель колледжа:
class College < ApplicationRecord
has_many :courses, dependent: :destroy
has_secure_password
def College.digest(string)
cost = ActiveModel::SecurePassword.min_cost ?
BCrypt::Engine::MIN_COST : BCrypt::Engine.cost
BCrypt::Password.create(string, cost: cost)
end
end
Модель курса:
class Course < ApplicationRecord
belongs_to :college
end
Миграция:
class CreateCourses < ActiveRecord::Migration[5.1]
def change
create_table :courses do |t|
t.string :name
t.references :college, foreign_key: true
t.timestamps
end
add_index :courses, [:college_id, :created_at]
end
end
Редактировать:
На самом деле, я создал контроллер с именем Collegesessions и добавил метод current_user в его помощник:
module CollegesessionsHelper
def log_in(college)
session[:user_id] = college.id
end
def current_user
if session[:user_id]
@current_user ||= College.find_by(id: session[:user_id])
end
end
def logged_in?
!current_user.nil?
end
def log_out
session.delete(:user_id)
@current_user = nil
end
end