Duvida---estou com dificuldade em verificar dados de um atributo da tabela

Ruby

18/11/2011


estou a fazer uma aplicacao para um marcacao de consultas para um hospital onde tenho as tabelas médicos(id,nome,apelido), pacientes(id,nome,apelido,datanascimento,sexo) e consultas(id,medico_id,paciente_id).
Eu consigo inserir pacientes, médicos e marcar consultas para pacientes com os médicos.
O problema é que eu queria que antes que um médico efectua-se uma consulta ele pudesse verificar todas consultas feitas para um determinado paciente. E não tenho ideia de como fazer isso os controllers e models da classe consulta que é a principal estão abaixo:


class ConsultasController < ApplicationController

before_filter :authorize

layout suphc
#END:layout

# GET /consultas
# GET /consultas.xml
def index

@user = User.find(session[:user_id])

if @user.medico
@consultas = Consulta.find_all_by_medico_id(@user.medico.id)
end
if @consultas == nil and @user.paciente
@consultas = Consulta.find_all_by_paciente_id(@user.paciente.id)
end
if @consultas == nil and @user.auxadmin
@consultas = Consulta.all
end

respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @consultas }

end
end

def historico

end

# GET /consultas/1
# GET /consultas/1.xml
def show
@consulta = Consulta.find(params[:id])
@user = User.find_by_id(session[:user_id])
@consulta.user = @user


respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @consulta }

end
end

# GET /consultas/new
# GET /consultas/new.xml
def new
@consulta = Consulta.new
@user = User.find(session[:user_id])

respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @consulta }
end
end




# GET /consultas/1/edit
def edit


@consulta = Consulta.find(params[:id])
@user = User.find_by_id(session[:user_id])
@consulta.user = @user


end

# POST /consultas
# POST /consultas.xml
def create
@consulta = Consulta.new(params[:consulta])

@user = User.find_by_id(session[:user_id])
@consulta.user = @user

# se o utilizador for paciente, ñ é preciso seleccionar
if @user.paciente
@consulta.paciente = @user.paciente
end

respond_to do |format|
if @consulta.save
format.html { redirect_to(@consulta, :notice => Consulta foi criada com sucesso.) }
format.xml { render :xml => @consulta, :status => :created, :location => @consulta }
else
format.html { render :action => new }
format.xml { render :xml => @consulta.errors, :status => :unprocessable_entity }
end
end
end

# PUT /consultas/1
# PUT /consultas/1.xml
def update


@consulta = Consulta.find(params[:id])

@user = User.find_by_id(session[:user_id])
@consulta.user = @user

# se o utilizador for paciente, ñ é preciso seleccionar
if @user.paciente
@consulta.paciente = @user.paciente
end

respond_to do |format|
if @consulta.update_attributes(params[:consulta])
format.html { redirect_to(@consulta, :notice => Consulta foi actualizada com sucesso.) }
format.xml { head :ok }
else
format.html { render :action => edit }
format.xml { render :xml => @consulta.errors, :status => :unprocessable_entity }
end
end
end

# DELETE /consultas/1
# DELETE /consultas/1.xml
def destroy

if access_to(admin) == 0
return 0
end

@consulta = Consulta.find(params[:id])
@consulta.destroy

respond_to do |format|
format.html { redirect_to(consultas_url) }
format.xml { head :ok }
end
end
end

Model
class Consulta < ActiveRecord::Base

# validates_presence_of :estado ,:message => -O Campo estado deve ser preenchido
validates_numericality_of :preco,:message => -O campo deve ser um númerico

belongs_to :medico, :foreign_key => medico_id
belongs_to :paciente, :foreign_key => paciente_id
belongs_to :user, :foreign_key => user_id
belongs_to :receita, :foreign_key => receita_id

def self.return_disponibilidades

find(:all )
end

def self.return_consultas
find(:all,:conditions => estado = Marcada)
end


def self.medicos_dados(medico)
consulta = self.new
consulta.medico = medico
return consulta
end

def privacy_enabled=(val)
self.privacy_disabled = val == 0
end

def privacy_enabled
!privacy_disabled
end


def self.return_consultas
find(:all,:conditions => estado = f)
end

end
Telmajackson

Telmajackson

Curtidas 0

Respostas

Rodrigo Jardim

Rodrigo Jardim

18/11/2011

é só fazer uma tela de para o medico pesquisar pelo consulta.paciente, provavelmente criando um controller novo
GOSTEI 0
POSTAR