Soy nuevo en Ruby On Rails, estoy desarrollando un aplicativo donde los Docentes acceden por medio de correo y clave (configurado con la gema devise), pueden crear estudiantes y crear reportes de los mismos.
Estos son los modelos:
officer: (Para los usuarios en este caso los Docentes)
class Officer < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :events
include PermissionsConcern
end
event (Para los reportes de cada estudiante)
class Event < ActiveRecord::Base
belongs_to :student
belongs_to :officer
has_many :comments
end
student (Para los estuddiantes)
class Student < ActiveRecord::Base
validates :documento, :colegio, :nombres, :apellidos, :tipodocumento, :genero, :fechanacimiento, :edad, :etnia, :depto, :ciudad, :localidad, :barrio, :grado, :jornada, :discapacidad, :dirresidencia, :telcontacto, :nombreacudiente, :nombremadre, :nombrepadre, presence: true
has_many :events
end
Siguiendo un tutorial cree la siguiente migración:
class AddOfficerIdToEvents < ActiveRecord::Migration
def change
add_reference :events, :officer, index: true
add_foreign_key :events, :officers
end
end
En el controlador del Reporte puedo crear un reporte para cada Alumno (events_controller):
class EventsController < ApplicationController
before_action :authenticate_officer!
def create
@student = Student.find(params[:student_id])
@event = @student.events.create(event_params)
redirect_to student_path(@student)
end
private
def event_params
params.require(:event).permit(:fechareporte, :fechaevento, :lugar,:descripcion, :officer_id)
end
end
Sé que en esta línea de código:
@event = @student.events.create(event_params)
Se crea y se guarda el reporte, y asocia automáticamente el Alumno. Pero quiero poder mostrar el email del Docente que realizo el reporte, y no sé cómo modificarla para que almacene el officer_id del usuario logueado para saber que Docente realizo el reporte del alumno., he buscando en internet pero no he encontrado como.
Ayuda…! Por favor.
Agradezco su amable colaboración.
Gracias.