Ruby on Rails 5.0 for Autodidacts: Learn Ruby 2.3 and Rails 5.0

BONUS DEL FIN DE SEMANA

Cada fin de semana estoy compartiendo un bonus con todos los seguidores de este blog, generalmente son los libros que he ido consiguiendo como bonus de otras paginas.

En esta ocasión les traigo un libro llamado Ruby on Rails 5.0 for Autodidacts: Learn Ruby 2.3 and Rails 5.0.

Es un excelente libro para aquellos que están comenzando en el mundo de RoR. Espero les sea de ayuda para seguir creciendo como devs.

Enlace: http://adf.ly/1XeuLK

Nota: El enlace está acortado con adf.ly, demora 5 segundos para que continúes con la descarga, con esto me apoyas para continuar publicando.

¡Hasta un próximo post!

 

Ruby on Rails RVM en Ubuntu 14.04

Instalar RoR en Ubuntu 14.04 via RVM es sumamente facil pero hay una libreria nativa que da errores al instalar y para eso es este post, vamos a solucionar ese problema. Vamos con lo primero.

Instalamos RVM y Ruby (en este momento la ultima estable de Ruby es v2.3.0)

Como en Python tenemos un virtualenv, aqui en Ruby tenemos la oportunidad de usar un Gemset para cada proyecto.

Antes de instalar Rails vamos a instalar Nokogiri

Ahora vamos con Rails, la ultima version estable es v4.2.5

Eso es todo, espero les quite muchos dolores de cabeza al momento de compilar una librería nativa.

¡Hasta un próximo post!

default_scope model rails [ like OrderBy ]

Esta solucion la encontré en stackoverflow

default_scope (Rails 2.3, 3+, 4.0) works, here’s the exact syntax:

where created_at is the field you want the default sorting to be done on.
(default_scope :order => 'created_at DESC' for rails 2.x)

Note: ASC is the code to use for Ascending and DESC is for descending (descNOT dsc !).
Once you’re used to that you can also use ‘named_scope’ (just called ‘scope’ in rails 3), e.g.

:published scope gives you Book.published instead of Book.find(:published => true).

With rails 3+ you can ‘chain’ those methods together by concatenating them with periods between them, so with the above scopes you can now use Book.published.confirmed.
With this method, the query is not actually executed until actual results are needed (lazy evaluation), so 7 scopes could be chained together but only resulting in 1 actual database query, to avoid performance problems from executing 7 separate queries.

You can use a passed in parameter such as a date or a user_id (something that will change at run-time and so will need that ‘lazy evaluation’, with a lambda, like this:

Finally you can disable default scope with:

or even better:

which will disable any filter (conditions) or sort (order by).

Note that the first version works in Rails2+ whereas the second (unscoped) is only for Rails3+


So … if you’re thinking, hmm, so these are just like methods then…, yup, that’s exactly what these scopes are!
They are like having def self.method_name ...code... end but as always with ruby they are nice little syntactical shortcuts (or ‘sugar’) to make things easier for you!

In fact they are Class level methods as they operate on the 1 set of ‘all’ records.

Their format is changing however, with rails 4 there are deprecation warning when using #scope without passing a callable object. For example scope :red, where(color: ‘red’) should be changed to scope :red, -> { where(color: ‘red’) }.

As a side note, when used incorrectly, default_scope can be misused/abused.
This is mainly about when it gets used for actions like where‘s limiting (filtering) the default selection (abad idea for a default) rather than just being used for ordering results.
For where selections, just use the regular named scopes. and add that scope on in the query, e.g.Book.all.published where published is a named scope.

In conclusion, scopes are really great and help you to push things up into the model for a ‘fat model thin controller’ DRYer approach.

 

gem install mysql2 + Win7 + XAMPP

Aunque no lo crean es mucho mas sencillo de lo que parece:

Generalmente esta gema necesita librerías o .dll nativos para poder funcionar, depende del S.O. que estés usando varia esta gema.

Para el caso de Windows 7, es muy sencillo y aun mas si tienes XAMPP instalado. Para ello solo debes instalar con el siguiente parametro:

Happy code.

Rails v4 + Twitter Bootstrap

El uso de Twitter Bootstrap es una práctica sumamente útil para acelerar el lanzamiento de una app.

Buscando en Internet conseguí la mezcla perfecta entre Ruby on Rails y Twitter Bootstrap para aumentar la velocidad de desarrollo de aplicaciones web.

El paquete se llama rails-bootstrap

Simplemente debes crear tu proyecto con esta linea:

Espero les sea de utilidad como lo ha sido para mi.

unable to convert «x89» from ASCII-8BIT to UTF-8

Estas instalando Rails 4 en Mac OSX y te encuentras con un error como este:

Parsing documentation for rails-4.0.0

Y cuando verificas la versión de Rails te das cuenta que no está instalado. La solución que debes hacer es abrir la consola y pega los siguientes comandos:

Asegúrate que estas usando la última versión de Ruby por defecto:

Crea un Gemset (called gemset) y que será usado para esta versión de Ruby:

Ahora instala Rails a ese Gemset:

Esto debería ser suficiente.

 

Instalar Ruby v2.0.0 con RVM en Mac OSX

Lo que debes hacer es abrir la línea de comandos y pegar los siguientes:

Instalando RVM

curl -L get.rvm.io | bash

source ~/.rvm/scripts/rvm

[[ -s «$HOME/.rvm/scripts/rvm» ]] && source «$HOME/.rvm/scripts/rvm»

Chequeando Requerimientos de RVM

rvm requirements

Ahora llegó el momento de instalar Ruby 2.0.0:

 

 

Instalar sqlite3 para Ruby on Rails

En esta ocasión he intentado instalar sqlite3 en un entorno de Ruby 2.0.0 con Windows Xp

Lo primero que debes hacer es descargar 2 archivos:

Y descomprimir ambos en

Dentro de esa carpeta deberían estar los archivos:

Ahora solo queda compilar nuestra gema de sqlite3 con los archivos que hemos descomprimido:

Una vez que hayan dado Enter en la linea de comandos de Windows, nos dará un resultado similar a:

Eso es todo, sigan codeando

Actualizando tu entorno Ruby on Rails

Este post salió un poco tarde, pero hay un viejo refrán que dice: Mas vale tarde que nunca.

En esta oportunidad tengo la labor de actualizar mi entorno de Ruby on Rails, ya que instalé todo hace mucho tiempo y todas las dependencias están desactualizadas.

Los pasos que debemos hacer son:

Actualizar RubyGems:
gem update –system

Actualizar Rake:
gem update rake

Actualizar Bundler:
gem update bundler

Actualizar RubyGems-Bundler:
gem update rubygems-bundler

Actualizar Rails:
gem update rails

 

Por ahora será suficiente para mi…

Si ustedes consideran que me faltó algo, con gusto leo sus comentarios…