que tienen un número de carriles estándar validaciones dentro de mi modelo:Carriles no generar mensajes de validación fallan
validates_presence_of :url_string
validates_uniqueness_of :url_string
validates_presence_of :stream_source
validates_presence_of :width
validates_presence_of :height
validates_presence_of :name
validates_uniqueness_of :name
validates_presence_of :customer_name
validates_presence_of :iframe_background_color
Si no llene uno de estos campos dentro de mi formulario y luego me llevan de nuevo a la forma como se esperaba, pero lo extraño es que no se muestran mensajes de error. Estoy utilizando el código de abajo para mostrar los mensajes de error:
<% @camera.errors.full_messages.each do |error| %>
<p><%= error %></p>
<% end %
También he tratado de imprimir objeto los camera.errors @ y esto es lo que se muestra:
#<ActiveModel::Errors:0x12db19bc @base=#<Camera id: 1, stream_source: "test", width: 640, height: 360, active: true, name: "test", url_string: "CAYD19Vp", customer_name: "test", iframe_background_color: "#FFFFFF", online: true, created_at: "2011-08-30 15:54:16", updated_at: "2011-09-06 15:52:48", audio: true, iframe_text_color: "#FF00FF", iframe_link_color: "#FF0000", notes: "Some notes!", offline_image_file_name: "Cake.jpg", offline_image_content_type: "image/jpeg", offline_image_file_size: 196591, offline_image_updated_at: "2011-09-06 12:12:38", pull_stream_url: "test", bitrate: "300-500", show_branding: false>, @messages={}>
Como se puede ver la mensajes hash está vacío. Intenté configurar manualmente el mensaje de error de validación haciendo lo siguiente:
validates_presence_of :name, :message => "No name present"
pero no llenó el mensaje hash tampoco.
Controlador de acción de actualización se muestra a continuación:
def update
@camera = Camera.find(params[:id])
if @camera.update_attributes(params[:camera])
flash[:notice] = "Camera updated"
redirect_to nwcadmin_camera_path
else
redirect_to :action => :edit
end
end
estoy usando la versión de Ruby Ruby and Rails 1.9.2p290 versión 3.1.0.
¡Cualquier asistencia sería genial!
Gracias
El código del controlador probablemente sea útil aquí. – jdl
Gracias, he agregado la acción de actualización del controlador. – stephenheron
Logré llegar al fondo de mi problema pero como no puedo responder mi propia pregunta por otras 7 horas, pondré la solución aquí por el momento. En el controlador que estaba usando: redirect_to: action =>: editar que debería haber estado usando: render: action =>: editar Mediante el uso de redirect_to me estaba golpeando la acción de edición dentro del controlador que era entonces obtener un nuevo objeto de cámara de la base de datos en lugar de preservar el objeto de cámara de la acción de actualización. – stephenheron