Ayuda con asociaciones

18 views
Skip to first unread message

Freddy Cipamocha Triana

unread,
Dec 28, 2016, 3:53:30 PM12/28/16
to Ruby on Rails: Talk

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.

 

André Orvalho

unread,
Jan 6, 2017, 7:24:27 AM1/6/17
to Ruby on Rails: Talk
I am sorry but my written spanish is bad so it goes in english:


and also the whole guide. Your migration is not correct.
Reply all
Reply to author
Forward
0 new messages