18

Ruby on Rails MusicApp-Platzi [funcionando]

Estaba tomando la clase de Ruby on Rails y esta un poco desactualizada.
Se supone que creamos una web_app que tiene Tracks y Playlists, y que busca canciones en Spotify

2 cambios geneales (hasta donde yo he estudiado)

  • El API de Spotify ya no deja hacer consultas sin registrar previamente la applicacion
  • Heroku hace prevalidaciones antes de deployment… lo cual me daba un error que tarde cerca de un dia en resolver.

Para resolver el primer issue, Antes de que hagan sus consultas a RSpotify, saquen sus llaves de la aplicacion

En su archivo /config/application.yml las agregan con este formato:

development:   spotify_client_id: aaabbbbaaaaabbbbb
   spotify_client_secret: aaaaabbbbbaaaaabbbb

y en el archivo /config/application.rb dentro de la clase Application agregan la siguiente linea. 😄

RSpotify::authenticate(ENV['spotify_client_id'] , ENV['spotify_client_secret'])

Reinicien su rails server y ya con eso les deben funcionar las consultas a spotify.

Ahora para Heroku

tienen que tener instalado pg (y estar usando postgresql en su entorno de development, creo que asi es mas facil)

para esto pueden usar este pequeno tutorial que agregue en mi datavase.yml -de la ayuda de ubuntu 😄

Alternative Postgress Setup on ubuntu
#If you don’t intend to connect to the database from other machines, this alternative setup may be simpler.
#Since the only user who can connect to a fresh install is the postgres user, here is how to create yourself a database account (which is in this case also a database superuser) with the same name as your login name and then create a password for the user:
sudo -u postgres createuser --superuser $USER sudo -u postgres psql postgres=# \password $USER

#for this line i actually used

postgres=# \password nyli

#becaus thats my user in ubuntu

#Client programs, by default, connect to the local host using your Ubuntu login name and expect to find a database with that name too. So to make things REALLY easy, use your new superuser privileges granted above to create a database with the same name as your login name:
\q sudo -u postgres createdb $USER
#Connecting to your own database to try out some SQL should now be as easy as:
psql

Continuamos

En su archivo /config/application.yml pueden agregar la contrasenia debajo de las ids de spotify asi:

development:   spotify_client_id: aaabbbbaaaaabbbbb
   spotify_client_secret: aaaaabbbbbaaaaabbbb
   psql_password: ababababababababapassword

Y en databases.yml agregar al grupo development:

username: nyli

#The password associated with the postgres role (username).
password: <%= ENV[‘psql_password’] %>

y el el mismo archivo agregan production values

production: 
   <<: *defaultdatabase: musicapp_prod 
   url: <%= ENV['DATABASE_URL'] %>

ohh, solo faltaria guardar los archivos, ejecutar en la terminal

rake db:setup

y reiniciar el server!

------- Asi quedaria listo su ambiente de Development!!!

Para Heroku, crean una applicacion -puede ser desde la pagina principal- pueden usar el metodo de Fer que dijo en as clases o https://devcenter.heroku.com/articles/git heroku material
agregan la applicacion a git remote

pero, antes de hacer el git push heroku master
van a crear las variables de entorno que ocupamos en Application.rb… porque heroku las va a necesitar para el deployment.
asi que pueden ir a https://devcenter.heroku.com/articles/config-vars para ver como se hace desde cli.

lo mas facil es ir a MusicAppHeroku > settings > config variables

y ahora si ya pueden correr (o volver a correr como en mi caso)

git push heroku master

y tambien

heroku run rake db:migrate

kudos! 😄 tambien pueden ver el codigo aqui https://github.com/NyliStanwood/ruby-on-rails-pl-projects

Marilyn Stanwood

Escribe tu comentario
+ 2