José Galisteo Ruiz

06/12/2011

Table-less model, validations, rails 3 and formtastic

Antes de Rails 3 y sacar las validaciones a un modulo a aparte había que montar un pequeño pollo para esto, pero ahora es bastante fácil.

Imaginemos que tenemos queremos un formulario de contacto con los campos email y comment, además lo hacemos en formtastic y haml.

# new.html.haml
= semantic_form_for(@contact, url: contacts_path, html: { method: :post}) do |f|
  = f.inputs do
    = f.input :email
    = f.input :comment, as: :text
  = f.buttons do
    = f.commit_button

En el controlador obviamente tendremos que cargar el @contact y procesar el formulario:

contacts_controller.rb
....
def new
  @contact = Contact.new
end

def create
  @contact = Contact.new(params[:contact])
  # En vez de guard enviamos el email si va todo bien
  if @contact.send_mail
    redirect_to new_contacts_path, notice: "Thansk for your comment"
17/08/2011

Liquid y will_paginate

Las últimas últimas semanas he estado trabajando con https://github.com/Shopify/liquid/ y llego la hora de preparar la paginación.

Estaba usando https://github.com/amatsuda/kaminari pero no había nada hecho con Liquid así que tuve que volver a will_paginate que si que tenía un plugin, además la nueva versión de este tiene la sintaxis como la de Active Record 3.

El problema es que ninguno de los forks disponible en GitHub de https://github.com/ceritium/will_paginate-liquidized funcionaban bien con mi entorno, rails 3.1.0 y will_paginate 3.0 así que hice otro fork para solucionarlo.

No puedo garantizar que funcione con otras configuraciones.

22/05/2011

Recipient address rejected: User unknown in local recipient table

El otro día tenía un problema con un proyecto que acabábamos de poner en producción y que solo daba problemas al enviar emails a su propio dominio.

Al final era muy sencillo solucionarlo, el problema es que estaba el dominio añadido en la opción mydestination del fichero /etc/postfix/main.cf.

Borrando el dominio y reiniciando postfix ya no tendrías que seguir tendiendo problemas.

22/05/2011

Instalar RMagick en Ubuntu

A mi por lo menos siempre me da problemas esto cuando pongo una aplicación y producción en un servidor nuevo y he de tirar de la chuleta, en Google aparecen otras formas, pero esta me parece la más sencilla y nunca me ha dado problemas a diferencia de otras (como instalar desde el código fuente).

$ apt-get install imagemagick libmagick9-dev
$ gem install rmagick

Con esto ya podrás usar RMagick directamente o gemas como https://github.com/thoughtbot/paperclip en Ubuntu.

Artículos