O objetivo desse exercício é criar um CRUD de notícias para a administração do gerenciador de conteudo do biscoito globo. Nós vamos esconder essa área de administração na próxima aula com login e senha.
Para criar uma nova app rails:
rails new biscoito-globo -T -m https://raw.github.com/gist/3852875
Para abrir no Textmate:
mate .
Para iniciar o servidor:
foreman start
O rails diferencia plural de singular. Ao criar um CRUD com scaffold use sempre singular. Por exemplo, para criar um CRUD de usuários você usuaria:
rails g scaffold user name:string email:string age:integer
Hoje vamos criar um CRUD de notícias, e news não tem singular, portanto:
rails g scaffold news title:string subtitle:string content:text
Para migrar o banco com a nova tabela de notícias:
rake db:migrate
O CRUD de notícias deve estar funcionando na url:
localhost:5000/news
Cadastre algumas notícias de exemplo.
Se tiver problemas com o botão de excluir, acesse o arquivo app/assets/javascripts/application.coffee e verique se contém o jquery_ujs:
#= require jquery
#= require jquery_ujs
Salve essas alterações no git:
git add -A
git commit -m "CRUD para notícias"
Crie um repositório no Github e utilize as duas linhas de código no bloco Push an existing repository from the command line, será algo assim:
git remote add origin git@github.com:seunome/biscoito-globo.git
git push -u origin master
A primeira linha liga o repositório local com o repositório criado no Github. A segunda linha salva as alterações locais no Github.
Crie uma app no heroku usando seu nome:
heroku create biscoito-globo-seunome
Publique o site no heroku:
git push heroku master
Migre o banco do heroku:
heroku run rake db:migrate
Abra sua app no heroku:
heroku open
Adicione /news no endereço para acessar o CRUD de notícias. Cadastre algumas notícias de exemplo.
O heroku desliga os servidores sem visitas após 30min. Quando alguém visita o site, o heroku leva alguns segundos para ligar novamente. Se quiser mantê-lo ligado constantemente altere o arquivo config/initializers/heroku_wake_up.rb: Substitua a url http://example.com pela url do site. Será algo parecido com: http://biscoito-globo-seunome.herokuapp.com
Salve as alterações locais:
git add -A
git commit -m "update do heroku wakeup"
Salve no github:
git push origin master
E publique novamente:
git push heroku master
Para treinar web design no Rails, adicione alguns estilos do Twitter Bootstrap:
http://twitter.github.com/bootstrap/
Traduza tudo o que conseguir. Algumas áreas serão mais difíceis de traduzir. Nós vamos ver como resolver isso na próxima aula. Quando terminar as alterações, publique no heroku e mande o link para o Basecamp.