Foros del Web » Programando para Internet » Ruby »

Conexion sinatra con postgres

Estas en el tema de Conexion sinatra con postgres en el foro de Ruby en Foros del Web. saludos, soy estudiante y estoy intentando hacer la conexión de postgres con sinatra, para hacer una aplicación pequeña con CRUD a la base de datos, ...
  #1 (permalink)  
Antiguo 01/06/2015, 21:10
Avatar de deivermora19  
Fecha de Ingreso: octubre-2014
Ubicación: Costa Rica
Mensajes: 6
Antigüedad: 6 años, 11 meses
Puntos: 0
Sonrisa Conexion sinatra con postgres

saludos, soy estudiante y estoy intentando hacer la conexión de postgres con sinatra, para hacer una aplicación pequeña con CRUD a la base de datos, pero al momento de correr la app me da problema. de sinatra no hay mucha información, he leído bastante y no le llego.

si alguien me puede dar una manita.

este es mi app.rb

# app.rb

require 'sinatra'
require 'sinatra/activerecord'
require './environments'


class Post < ActiveRecord::Base
end


este es mi environments.rb


configure :development do
set :database, 'sqlite:///dev.db'
set :show_exceptions, true
end

configure :production do
db = URI.parse(ENV['DATABASE_URL'] || 'postgres:///localhost/expo')

ActiveRecord::Base.establish_connection(
:adapter => db.scheme == 'postgres' ? 'postgresql' : db.scheme,
:host => db.localhost,
:username => db.postgres,
:password => db.123456,
:database => db.expo,
:encoding => 'utf8'
)
end


gracias
  #2 (permalink)  
Antiguo 02/06/2015, 13:26
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 14 años, 6 meses
Puntos: 137
Respuesta: Conexion sinatra con postgres

puedes indicar el problema que te da por favor.

Saludos.
__________________
>> abimaelmartell.com
  #3 (permalink)  
Antiguo 02/06/2015, 19:00
Avatar de deivermora19  
Fecha de Ingreso: octubre-2014
Ubicación: Costa Rica
Mensajes: 6
Antigüedad: 6 años, 11 meses
Puntos: 0
Respuesta: Conexion sinatra con postgres

hola, gracias por la respuesta soy nuevo con sinatra y no encuentro mucha documentación .

te muestro el error que da, es como de sintaxis

[email protected]:~/Escritorio/sinatra-blog$ ruby app.rb
/home/sly-019/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require': Could not load 'active_record/connection_adapters/sqlite_adapter'. Make sure that the adapter in config/database.yml is valid. If you use an adapter other than 'mysql', 'mysql2', 'postgresql' or 'sqlite3' add the necessary adapter gem to the Gemfile. (LoadError)
from /home/sly-019/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/sly-019/.rvm/gems/ruby-2.0.0-p643/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `block in require'
from /home/sly-019/.rvm/gems/ruby-2.0.0-p643/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency'
from /home/sly-019/.rvm/gems/ruby-2.0.0-p643/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require'
from /home/sly-019/.rvm/gems/ruby-2.0.0-p643/gems/activerecord-4.2.1/lib/active_record/connection_adapters/connection_specification.rb:175:in `spec'
from /home/sly-019/.rvm/gems/ruby-2.0.0-p643/gems/activerecord-4.2.1/lib/active_record/connection_handling.rb:50:in `establish_connection'
from /home/sly-019/.rvm/gems/ruby-2.0.0-p643/gems/sinatra-activerecord-2.0.6/lib/sinatra/activerecord.rb:43:in `database='
from /home/sly-019/.rvm/gems/ruby-2.0.0-p643/gems/sinatra-1.4.6/lib/sinatra/base.rb:1216:in `set'
from /home/sly-019/.rvm/gems/ruby-2.0.0-p643/gems/sinatra-1.4.6/lib/sinatra/base.rb:1989:in `block (2 levels) in delegate'
from /home/sly-019/Escritorio/sinatra-blog/environments.rb:2:in `block in <top (required)>'
from /home/sly-019/.rvm/gems/ruby-2.0.0-p643/gems/sinatra-1.4.6/lib/sinatra/base.rb:1410:in `configure'
from /home/sly-019/.rvm/gems/ruby-2.0.0-p643/gems/sinatra-1.4.6/lib/sinatra/base.rb:1989:in `block (2 levels) in delegate'
from /home/sly-019/Escritorio/sinatra-blog/environments.rb:1:in `<top (required)>'
from /home/sly-019/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/sly-019/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/sly-019/.rvm/gems/ruby-2.0.0-p643/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `block in require'
from /home/sly-019/.rvm/gems/ruby-2.0.0-p643/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency'
from /home/sly-019/.rvm/gems/ruby-2.0.0-p643/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require'
from app.rb:5:in `<main>'
[email protected]:~/Escritorio/sinatra-blog$
  #4 (permalink)  
Antiguo 03/06/2015, 15:57
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 13 años, 6 meses
Puntos: 1329
Respuesta: Conexion sinatra con postgres

¿Ya checaste lo que te dice el error?

Cita:
Make sure that the adapter in config/database.yml is valid
__________________
Grupo Telegram Docker en Español
  #5 (permalink)  
Antiguo 07/06/2015, 22:38
Avatar de deivermora19  
Fecha de Ingreso: octubre-2014
Ubicación: Costa Rica
Mensajes: 6
Antigüedad: 6 años, 11 meses
Puntos: 0
Respuesta: Conexion sinatra con postgres

hola, decidí borrar todo y comenzar de 0 con el pequeño proyecto, me encuentro con el problema de que no hay mucha información para conectar sinatra con postgress.

actualmente ya logre hacer la conexión pero al insertar datos me da un error y creo es porque no he dado bien la conexión a la DB y me falta instanciarla.

les muestro el principal y las vistas.

ojala puedan sacar unos minutos para orientarme que falta para que pueda guardar datos en la DB

ESTE ES EL PRINCIPAL

# myapp.rb
require 'sinatra'
require 'pg'

db_params = {
host: 'localhost',
dbname: 'expo',
port: '5433',
user: 'postgres',
password: '123456'
}
Psql = PG::Connection.new(db_params)

# index principal
get '/' do
erb :index
end

# nuevo producto
get '/articulos' do
erb :nuev_linea
end

# guarda los productos
post '/articulos' do
@articulo = Articulo.new(:marca => params[:marca].upcase, :descripcion => params[:descripcion].upcase, :precio => params[:precio].upcase)
if !campo_vacio(params[:marca]) and !campo_vacio(params[:descripcion])
if @articulo.save
redirect "/articulos/#{@articulo.id}"
else
redirect '/articulos'
end
else
redirect '/index'
end
end



VISTAS


[COLOR="rgb(255, 0, 255)"]index.erb[/COLOR]

<h1>Menú Principal Libreria</h1>
<br/>
<p><a href="/articulos">Registro de Productos</a></p>
<br/>
<p><a href="/listalineas">Listado de Productos</a></p>


nuev_linea.erb
<div>
<form action="/articulos" method="post" accept-charset="utf-8">
<label>Marca </label><input type="text" name="marca" id="marca" class="campo_entrada" maxlength=4>
<br/><br/>
<label>Descripcion </label><input type="text" name="descripcion" id="descripcion" class="campo_entrada" maxlength=30>
<br/><br/>
<label>Precio </label><input type="text" name="precio" id="precio" class="campo_entrada" maxlength=30>
<br/> <br/>
<input type="submit" value="Guardar"/>
</form>
<p><a href="/">Menú Principal</a></p>
</div>


ERROR QUE REPORTA

NameError at /articulos
uninitialized constant Articulo
file: app.rb location: block in <main> line: 27

ES ESTA LINEA:
@articulo = Articulo.new(:marca => params[:marca].upcase, :descripcion => params[:descripcion].upcase, :precio => params[:precio].upcase)

Etiquetas: postgres
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:35.