Ruby on Rails Wednesday, December 28, 2016

Buenas Tardes.

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.

 

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/b8e0877d-6dca-4ca7-afc5-ea31e1193939%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment