Showing posts with label Ruby on Rails. Show all posts
Showing posts with label Ruby on Rails. Show all posts

Friday, March 28, 2014

Boostrap Glyphicon y Rails 4

Tratando de usar la versión gratuita de Glyphicon, disponible para bootstrap,  y rails 4 tuve problemas, pero encontrés la solución en stackoverflow.

Aquí la solución:

Se debe agregar el siguiente código a application.css:

@font-face { font-family: 'Glyphicons Halflings'; src: url(asset_path('glyphicons-halflings-regular.eot')); src: url(asset_path('glyphicons-halflings-regular.eot?#iefix')) format('embedded-opentype'), url(asset_path('glyphicons-halflings-regular.woff')) format('woff'), url(asset_path('glyphicons-halflings-regular.ttf')) format('truetype'), url(asset_path('glyphicons-halflings-regular.svg#glyphicons_halflingsregular')) format('svg'); }
y agregar lo siguiente a application.rb
config.assets.paths << "#{Rails}/vendor/assets/fonts"

y listo!

Bookmark and Share

Tuesday, March 26, 2013

Error H10 al hacer deploy en Heroku

Segunda vez que hago el deploy de una aplicación en Heroku y me vuelve a salir el mismo problema:

at=error code=H10 desc="App crashed" method=GET path=/ host=nombre-de-mi-app.herokuapp.com fwd="190.21.126.160" dyno= connect= service= status=503 bytes=

at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=timepoints.herokuapp.com fwd="190.21.126.51" dyno= connect= service= status=503 bytes=

Intenté las siguientes cosas y mi problema se solucionó:

En stackoverflow sugerían lo siguiente:

heroku run rake db:migrate

pero eso no me solucionó el problema (inicialmente al menos), lo que había que fijarse bien es que el archivo database.yml esté bien configurado para el ambiente de producción.

En particular, lo que tuve que editar fue el nombre del usuario de la base de datos, lo dejé en root y me aseguré que el nombre de la base de datos esté toda en minúsculas y en el formato: nombreapp_production.

Ejemplo:


production:
  adapter: postgresql
  encoding: unicode
  database: nombreapp_production
  pool: 5
  username: root
  password:


y fijarse de cualquier otro error que pueda estar surgiendo de alguna clase que se está subiendo también puede solucionar el problema.


Bookmark and Share

Monday, October 29, 2012

Barra de búsqueda simple - Ruby on Rails


Es muy sencillo agregar una barra de búsqueda en una aplicación de rails. Aquí un pequeño tutorial:

1. Crear un form para enviar la solicitud con la palabra a buscar

Por ejemplo en su index.html.erb coloquen el siguiente código para obtener un formulario como el de la imagen arriba:


<%= form_tag({:controller => "products", :action => "index"}, :method => :get) do %>

    <%= text_field_tag "searchbox", params[:searchbox] %>

    <%= submit_tag "Buscar", :name => nil %>

<% end %>

Recuerden editar el controlador y la acción a la que ustedes necesitan, éstas debe corresponder a la misma que renderea el index.html.erb donde están colocando el código.

2. Agregar código que incorpore la búsqueda:

En el archivo del modelo, en este caso sería product.rb, colocar el siguiente código para filtrar los resultados según los parámetros ingresados en la búsqueda.


def self.search(search)

 if search 

    where('title LIKE ?', "%#{search}%")

  else

    scoped

  end

end

En este caso deseo que mi búsqueda filtre de acuerdo al campo "title", ustedes deben editar eso de acuerdo a sus necesidades.

3. Por ultimo, realizar la búsqueda/filtrado en el controlador para entregar los resultados a la vista index.html.erb, luego en products_controller.erb


def index

  @products = Product.search(params[:searchbox])

    respond_to do |format|

      format.html # index.html.erb

    end

  end

y listo, los resultados ahora serán filtrados cuando hagan clic en el botón buscar.

Aquí algunos libros que les pueden ayudar a programar en Rails:

Bookmark and Share

Thursday, June 14, 2012

Problema encontrando MySql2 luego de actualizar Ubuntu

Si tienen problema encontrando MySql2 al actualizar Ubuntu a 12.04, luego de correr rails console por ejemplo, intenten lo siguiente:

Desinstalen mysql2:
gem uninstall mysql2

Instalar de nuevo:
Bundle install

Así mysql2 empezará a utilizar la nueva librería de Ubuntu y el problema se habrá solucionado.

Bookmark and Share

Monday, May 7, 2012

Utlizando tildes y 'ñ' en controladores de RoR

Si en su base de datos y parámetros utlizan palabras con tildes y con 'ñ' deben asegurarse que se está codificando en utf-8.

En particular, para que un controlador acepte estos caracteres, deben colocar:

#coding: utf-8
al inicio del controlador, antes de class MiController < ApplicationController

Bookmark and Share

Saturday, March 31, 2012

Cargando datos iniciales en el ambiente de producción

Si han cargado datos en el archivo seed.rb de rails y desean cargar estos datos en el ambiente de producción en lugar de el de desarrollo. No basta con correr rake db:seed, deben indicarle a rails que quieren correr los datos en la base de datos de producción. Esto se hace con este sencillo código:

 rake db:seed RAILS_ENV=production

Recuerden estar en la carpeta adecuada de su aplicación.

Bookmark and Share

Saturday, November 19, 2011

Could not find a JavaScript runtime. al correr rake db:create

Si se encontraron con el error

Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.

al correr rake db:create

Lo pueden solucionar al agregar dos lineas a su Gemfile:


gem 'execjs'
gem 'therubyracer'

Y luego corriendo:

bundle install


Bookmark and Share

Wednesday, November 9, 2011

RoR: Tablas y Columnas

Trabajando con Ruby on Rails, muchas veces olvido las tablas y columnas que tengo creadas en mi base de datos. Esto se puede solucionar inspeccionando la base de datos desde la consola de rails.

Para abrir la consola en Ubuntu ejecuta desde la linea de comando:

rails console

luego para ver las tablas creadas puedes correr el comando:

ActiveRecord::Base.connection.tables
Y para ver las columnas de una tabla puede correr:

ActiveRecord::Base.connection.columns("nombre_tabla").map{|c| [c.name, c.type]}

donde el .map{..} se usa para que puedas ver las columnas de una forma más ordenada, ya que de otra forma el comando te retorna los objectos de las colmnas en lugar de solo el nombre y el tipo.


Bookmark and Share
-->

Tuesday, November 1, 2011

Error: ActionView::Template::Error (application.css isn't precompiled):

Al tratar de visualizar una página de mi aplicación de rails me apareció el siguiente error:


ActionView::Template::Error (application.css isn't precompiled):
    2: <html>
    3: <head>
    4:   <title>MyApp</title>
    5:   <%= stylesheet_link_tag    "application" %>
    6:   <%= javascript_include_tag "application" %>
    7:   <%= csrf_meta_tags %>
    8: </head>
  app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__312531564_69848393197180'
  app/controllers/users_controller.rb:7:in `index'

Por defecto Rails asume que se tienen los archivos en producción precompilados.

Para solucionar este problema se debe configurar config.assets.compile a true

De esta manera de compilarán los archivos faltantes que sean necesarios.

Este cambio se debe hacer en el archivo production.rb ubicado en config/environments.

La solución la encontré aquí

Bookmark and Share

Tuesday, October 25, 2011

Crear xml personalizado en Rails

En el controlador probablemente tienen lo siguiente:

def mi_accion
    @algos = Algo.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @algos }
    end
  end

El primer paso es sacar la información adicional que contiene el format.xml y dejarlo de esta manera:


def mi_accion
    @algos = Algo.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml
    end
  end

El segundo paso es crear un archivo nuevo en la sección Vistas (Views) con la extensión: .xml.builder
En este caso: mi_accion.xml.builder
y dentro de este archivo es donde podrán crear el xml a su gusto. Deben partir colocando xml.instruct! al inicio de su archivo. Puede tener una estructura como esta:

xml.instruct!
xml.algos do
  @algos.each do |algo|
     xml.algo
        xml.tipo algo.tipo
        xml.id algo.id
        xml.nombre algo.nombre
    end
  end
end

y generará algo como:

<algos>
  <algo>
   <tipo>0</tipo>
   <id>33</id>
   <nombre>Rafael</nombre>
  <algo>
</algos>

Recuerden siempre tener sólo un nodo raíz, de otra manera no se generará el archivo que buscan.

Bookmark and Share

Friday, October 21, 2011

Dropdown en Ruby on Rails

Los formularios generados por rails generan campos de texto o checkboxes, pero qué pasa si quiero otro tipo de input del usuario, por ejemplo un dropdown?

Es tan fácil como cambiar

<%= f.text_field :pais %>

por

<%= f.select :pais, [['Chile','CL'],['Estados Unidos','USA'],['Argentina','ARG']] %>

Espero les sirva el dato :)


Bookmark and Share

Friday, June 17, 2011

Crear un botón con un link en Ruby on Rails

Ya conocemos la linea:

<%= link_to 'Volver', :back %>
Si queremos convertir esto en un botón en lugar de tener un simple link, basta realizar esta pequeña modificación:

<%= button_to 'Volver', :back %>

Bookmark and Share

Thursday, June 16, 2011

Solicitar confirmación de una acción en Ruby on Rails

Muchas veces necesitamos asegurarnos que el usuario realmente quiere hacer lo que está solicitando. Por ejemplo:  hacer click en un link mientras se está editando un formulario, si se dirije al otro link se perderán los cambio.

Para eso existe una simple linea de código que se agrega al link:

 :confirm => 'Seguro que desea seguir?'
Agregando esto a un link, al hacer click en el se desplegará un mensaje de alerta preguntando si está seguro de querer continuar (o cualquier texto que quieran). Si el usuario acepta, se realizará la acción del link, en caso contrario no se hará nada.

Este es un ejemplo de un link y su confirmación:

<%= link_to 'Volver', :back, :confirm => "Seguro que desea seguir?\nLos cambios no han sido guardados" %>

Ahí tenemos un link que retorna a la página anterior que visitó el usuario, esta se encuentra al final de un formulario, por lo que advertimos al usuario que si sigue se perderán todos los cambios.


Bookmark and Share

Crea un link a la página visitada previamente en Ruby on Rails

Para crear un link a la página de donde viene el usuario en Ruby on Rails, basta colocar la siguiente linea de código:

<%= link_to_function 'Volver', 'history.back()' %>
o bien:

<%= link_to_function 'Volver', :back %>

Esto es equivalente a lo que hace la linea de código:

javascript:history.back()


Bookmark and Share
Related Posts Plugin for WordPress, Blogger...