URLs amigables en Ruby on Rails

25 de Abril, 2007 — Ruby on RailsComentarios (2)

Una de las cosas que se puede hacer fácilmente en RoR es disponer de url amigables, de manera que el visitante puede situarse mejor, y lo más importante, mejorar considerablemente el posicionamiento en los buscadoreses.

Lo primero es crear un método llamado permalink que nos cambie los carácteres no válidos para una url por otros que si lo sean.
(más…)

Cómo utilizar develpment.log para depurar

30 de Marzo, 2007 — Ruby on RailsComentarios (0)

Es importante que revisemos este archivo para ver que está haciendo exactamente nuestra aplicación. Os pondré un ejemplo. En Rails las consultas SQL no las generamos nosotros (generalmente) y podrí­a ser que estuvieramos haciendo una búsqueda entre demasidos registros que hiciera que nuestra aplicación no rindiese lo esperado. En el arvhivo log/development.log se escriben las consultas que la aplicación hace.

Una buena solución es abrir una consola y ejecutar tail -f log/development.log, de esta manera aparecerá el contenido del archivo por pantalla y podremos comprobar que está pasado.

Recogiendo un array con í­ndices desde un form en RoR

25 de Enero, 2007 — Ruby on RailsComentarios (2)

Hoy he tenido que hacer una cosa que hasta ahora no habia hecho antes y creo que puede ser interesante para alguna aplicaciones por ejemplo una cesta de la compra.

Supongamos que tenemos una tabla de Articulos y otra de Colores y las tenemos que relacionar, donde un artículos puede tener varios colores.

Creamos una tabla llamada Relaciones y su scaffold. En el modelo definiremos las relaciones con las otras tablas de la siguiente manera

class Relation < ActiveRecord::Base
belongs_to :articles
belongs_to :colours
end

Bien, ahora modificamos el _form.rhtml de Relaciones y lo dejamos de la siguiente manera:

<p><label for=”relation_article_id”>Article</label><br/>
<%= select ‘relation’, ‘article_id’, Article.find_all.collect {|a| [ a.name, a.id ] } %>
</p>
<p>
<label for=”relation_colour_id”>Colors</label><br/>
<% @colours = Colour.find(:all) %>
<% @colours.each do |colour| %>
<%= check_box_tag “colours_list[]”, colour.id %>
<b><%= colour.name%></b> <% end %>
</p>

Lo que estamo haciendo es un select con todos los artículos y a continuación creamos una lista de colores con un checkbox al lado. El array colours_list[] almacenará todos los índices (id’s) de los colores que hayamos marcado, tendremos un array parecido a este: colours_list[ ” 3″ => “1″, “7″ => “1″, 19 => “1″].
El método create del controlador quedará como sigue:

def create
@colours = params[:colours_list]
@colours.each do |colour|
@relation = Relation.new(params[:relation])
@relation.colour_id = colour
if @relation.save
else
flash[:notice] = ‘Error: la relación no se ha podido crear.’
redirect_to :action => ‘list’
end
end
flash[:notice] = ‘La relación se ha creado correctamente.’
redirect_to :action => ‘list’
end

Problemas instalando RMagick en Ubuntu y Debian

2 de Noviembre, 2006 — Linux, Ruby on RailsComentarios (0)

En algunas ocasiones los paquetes de RMagick instalados con apt provocan algún problema. Los eliminé e intente instalar RMagick con gems, pero la instalación me de daba el siguiente error:

ERROR: Failed to build gem native extension.
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/rmagick-1.14.0 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/rmagick-1.14.0/gem_make.out

Para poder instalar RMagick mediante gems, eliminamos los paquetes instalados de RMagick mediante apt e instalamos los paquetes libmagick6-dev ruby1.8-dev:

sudo apt-get remove –purge librmagick-ruby-doc librmagick-ruby1.8
sudo apt-get install libmagick6-dev ruby1.8-dev

A continuación ya podemos instalar RMagick:

sudo gem install rmagick

Integrar FCKEditor y Ruby on Rails

8 de Octubre, 2006 — Ruby on RailsComentarios (0)

Para integrar el editor FCKEditor, he seguido los pasos que se explican en esta página. Primero tenemos que descargar el editor de la página oficial y copiar los siguientes ficheros en la carpeta ‘public/javascripts’ de nuestra aplicación.

/editor/
fckconfig.js
fckeditor.js
fckstyles.xml
fcktemplates.xml

Ahora editamos el fichero ‘public/javascripts/fckeditor.js’ y modificamos la lí­nea:

Editamos el fichero ‘app/helpers/application_helper.rb’ y añadimos:

module ApplicationHelper
def fckeditor_text_field(object, method, options = {})
text_area(object, method, options ) + javascript_tag( “var oFCKeditor = new FCKeditor(’” + object + “_” + method + “‘);oFCKeditor.ReplaceTextarea()” )
end
end

También añadimos en el del ‘layout’ que estamos utilizando, la siguiente lí­nea:

<%= javascript_include_tag “fckeditor” %>

Y por último editamos los ficheros ‘_form.rhtml’ donde queremos insertar el FCKeditor y cambiamos el text_area por:

<%= fckeditor_text_field ‘controlador’, ‘descipcion’ %>

« Entradas anteriores
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License. | Emili Parreño