Hola a todos tengo el siguiente problema, no me saltan las validaciones
que tengo en el modelo a la hora de crear un nuevo registro, alguien
sabe porque?
deciros que el error que me da creo que es erroneo ya que me carga los
combos, y en los parameter estan los datos…
gracias por adelantado
modelo
class Incidencia < ActiveRecord::Base
belongs_to :nivel
belongs_to :estado
belongs_to :usuario
validates_associated :usuario,:estado,:nivel
validates_uniqueness_of :titulo
validates_length_of :titulo, :within => 6…20, :too_long => “Escriba
un nombre mas corto”, :too_short => “Escriba un nombre mas largo”
validates_length_of :detalle, :within => 6…255, :too_long => “Escriba
un nombre mas corto”, :too_short => “Escriba un nombre mas largo”
validates_presence_of :titulo,:message =>‘No puede ser vacio’
end
controller
class Admin::IncidenciaController < ApplicationController
layout ‘admin’
def index
list
render :action => ‘list’
end
GETs should be safe (see
URIs, Addressability, and the use of HTTP GET and POST)
verify :method => :post, :only => [ :destroy, :create, :update ],
:redirect_to => { :action => :list }
def list
@incidencia_pages, @incidencias = paginate :incidencias, :per_page
=> 10
end
def show
@incidencia = Incidencia.find(params[:id])
end
def new
@usuarios = Usuario.find_all
@estados = Estado.find_all
@niveles = Nivel.find_all
@incidencia = Incidencia.new
end
def create
@incidencia = Incidencia.new(params[:incidencia])
if @incidencia.save
flash[:notice] = ‘Incidencia was successfully created.’
redirect_to :action => ‘list’
else
render :action => ‘new’
end
end
def edit
@incidencia = Incidencia.find(params[:id])
end
def update
@incidencia = Incidencia.find(params[:id])
if @incidencia.update_attributes(params[:incidencia])
flash[:notice] = ‘Incidencia was successfully updated.’
redirect_to :action => ‘show’, :id => @incidencia
else
render :action => ‘edit’
end
end
def destroy
Incidencia.find(params[:id]).destroy
redirect_to :action => ‘list’
end
end
plantilla
<%= error_messages_for ‘incidencia’ %>
Titulo
<%= text_field 'incidencia', 'titulo' %>
Detalle
<%= text_area 'incidencia', 'detalle' %>
Autor <%= options_from_collection_for_select @usuarios, "id", "alias",@incidencia.crea_user_id %>
Asignado a: <%= options_from_collection_for_select @usuarios, "id", "alias",@incidencia.desti_user_id %>
Fecha creacion
<%= datetime_select 'incidencia', 'fecha_creacion' %>
Fecha
finalizacion
<%= datetime_select 'incidencia', 'fecha_finalizacion' %>
alguien sabe porque no me saltan las validaciones y me sale el siguiente
error
You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.inject
Extracted source (around line #12):
9:
10:
Autor
11:
12: <%= options_from_collection_for_select @usuarios, “id”,
“alias”,@incidencia.crea_user_id %>
13:
14:
15:
Asignado a:
Request
Parameters: {“commit”=>“Crear”,
“incidencia”=>{“fecha_creacion(3i)”=>“6”, “desti_user_id”=>“12”,
“fecha_creacion(4i)”=>“12”, “detalle”=>“”, “estado_id”=>“3”,
“fecha_creacion(5i)”=>“56”, “fecha_finalizacion(1i)”=>“2007”,
“titulo”=>“”, “fecha_finalizacion(2i)”=>“7”,
“fecha_finalizacion(3i)”=>“6”, “fecha_finalizacion(4i)”=>“12”,
“fecha_finalizacion(5i)”=>“56”, “fecha_creacion(1i)”=>“2007”,
“crea_user_id”=>“12”, “fecha_creacion(2i)”=>“7”}}
Show session dump