Mostrando postagens com marcador Rails. Mostrar todas as postagens

[Dica] Como evitar que o servidor / Dyno do Heroku durma?

[Dica] Como evitar que o servidor / Dyno do Heroku durma? - Fernando Paladini

Se você usa o plano gratuito do Heroku provavelmente sabe das suas limitações. A principal limitação do plano gratuito do Heroku é que muitas vezes o servidor / Dyno pode "dormir" ou "entrar em hibernação" se o seu site não tiver muitas visitas frequentes.

Resolver esse problema é muito simples - pelo menos atualmente - e não exige praticamente nenhum esforço seu. Tenho utilizado o serviço gratuito UpTime Robot e acredito que ele tem feito o seu trabalho muito bem.

O que ele faz é pingar os sites que você configura a cada 5 minutos (no plano gratuito, no pago pode ser em intervalos ainda menores). Caso você não saiba o que é pingar, é como se esse serviço acessa-se o seu site a cada 5 minutos. Por conseguinte, o seu Dyno no Heroku nunca vai entrar em estado de hibernação, pois tecnicamente ele está recebendo visitas. 

O Uptime Robot permite até 50 "monitores" que prometem pingar um site cada a cada 5 minutos no plano gratuito, o que é muito mais do que suficiente para não permitir que o servidor do Heroku hiberne - evitando assim vários constrangimentos para os usuários.

O que está esperando para cria sua conta no Uptime Robot, configurar o ping para seu site e evitar com que o seu site entre em estado de hibernação? É tudo muito simples e se você tiver alguma dúvida basta postar aqui nos comentários!

Fernando Paladini.

[Tutorial] Como enviar e-mails no Rails utilizando Sendgrid e Heroku

[Tutorial] Como enviar e-mails no Rails utilizando Sendgrid e Heroku

Recentemente tive que implementar um sistema de envio de e-mails em um projeto que tenho trabalhado e como sou iniciante em Ruby on Rails senti certas dificuldades. Por isso criei esse pequeno guia onde você vai aprender como enviar e-mails no Rails utilizando o Heroku e a gem Sendgrid. 

Antes de mais nada, tenha o seu projeto já online no Heroku. Você provavelmente já deve ter feito isso, então vamos para o primeiro passo.

1º Passo - Abra o terminal e navegue até a pasta do seu projeto. Feito isso, adicione o Sendgrid ao seu projeto:
heroku addons:add sendgrid:starter

2º Passo - Para testar se o Sendgrid foi adicionado com sucesso ao Heroku, digite no terminal o comando abaixo. Se retornar algo, então está tudo certo.
heroku config:get SENDGRID_PASSWORD

3° Passo - No arquivo "config/environments/production.rb" adicione as seguintes linhas:
ActionMailer::Base.smtp_settings = {
    :address => ‘smtp.sendgrid.net’,
    :port => ’587′,
    :authentication => :plain,
    :user_name => ENV['SENDGRID_USERNAME'],
    :password => ENV['SENDGRID_PASSWORD'],
    :domain => ‘heroku.com’
}
ActionMailer::Base.delivery_method = :smtp

Com a configuração atual, você só poderá testar o envio de e-mails na Produção, ou seja, no Heroku. Isso porque as variáveis ENV estão configurados somente no Heroku, não no seu localhost. Se você acha melhor testar no seu localhost antes de enviar para o Heroku, siga o próximo passo (depois dos testes iniciais, é bom remover a configuração descrita no passo abaixo).

4º Passo - No arquivo "config/environments/development.rb" adicione as seguintes linhas:
ActionMailer::Base.smtp_settings = {
    :address => ‘smtp.sendgrid.net’,
    :port => ’587′,
    :authentication => :plain,
    :user_name => "substituir_aqui",
    :password => "substituir_aqui2",
    :domain => ‘heroku.com’
}
ActionMailer::Base.delivery_method = :smtp

5° Passo -Digite os seguintes comandos no Terminal. O texto em negrito deve ser substituído por eles.
heroku config:get SENDGRID_USERNAME #=> O que retornar, coloque em "substituir_aqui".
heroku config:get SENDGRID_PASSWORD #=> O que retornar, coloque em "substituir_aqui2".

Agora você deve adicionar um ActionMailer, que é um modulo padrão do Rails que serve para enviar e-mails. Não vou falar muito sobre o ActionMailer aqui, só vou usar um exemplo simples. Para saber mais sobre ActionMailer, veja isso e isso.

6° Passo - Adicione um ActionMailer para quando um novo usuário se registra no site, por exemplo:
rails g mailer UserMailer

7º Passo - No arquivo gerado em "app/mailers/user_mailer.rb", adicione o seguinte método (substitua por um e-mail seu, para testar se está funcionando):
def novo_usuario
    mail(:to => “seu@email.com”, :subject => “Bem vindo ao meu site!”)
end

8º Passo - Agora precisamos testar e ver se está tudo funcionando. Entre no "Rails Console" digitando "rails c" no terminal e então coloque:
UserMailer.novo_usuario.deliver

Em instantes você deve receber uma mensagem no seu e-mail com o assunto "Bem vindo ao meu site!". E pronto, finalizamos! Agora basta você aprender a usar o ActionMailer e seja feliz!

Quaisquer comentários são bem vindos, se não tem nada para comentar, então curta no Facebook ou retweet.

[Tutorial - Rails] Converter objetos para Script SQL

[Tutorial - Rails] Converter objetos Ruby para Script SQL de banco de dados (inserção)

Esses dias estava com um problema pois queria transformar objetos Ruby em scripts de inserção SQL. Sim, aqueles famosos "INSERT INTO ...". Encontrei uma "gem" chamada "models-to-sql", mas para minha infelicidade ela não suportava Ruby on Rails 4. 

Entrei em contato com o autor e este não se mostrou interessado em continuar dando suporte a gem. Como eu realmente precisava dela, dei um fork em seu projeto e descobri como portar ela para Rails 4. Mudei seu nome para "models-to-sql-rails" e você pode encontrar o repositório no Github.

Com o "models-to-sql-rails" você consegue facilmente converter objetos e array de objetos Ruby em scripts de inserção de banco de dados (em SQL). Se você precisa disso e quer uma solução fácil eu recomendo: baixe agora o "models-to-sql-rails"!

BTC-Stores, o primeiro diretório Bitcoin open-source do mundo


Você já ouviu falar no site "BTC-Stores"? É provável que não, pois ele ainda é um embrionário projeto open-source, lançado há poucas semanas atrás por Fernando Paladini e Guilherme Passos. Mesmo sendo apenas um pálido ponto azul, é com orgulho que posso dizer que o primeiro diretório Bitcoin open-source do mundo é brasileiro. 

Eu gosto de política e por isso mesmo não posso deixar de dizer que não falo isso por nacionalismo, afinal de contas o nacionalismo é uma m****. Talvez seja uma atitude modernista, com o intuito de mostrar a quem se disponha a ler esse texto que é possível construir coisas independente de sua nacionalidade.

Mas enfim, voltando ao contexto, BTC-Stores é o primeiro diretório open-source de sites que aceitam Bitcoin como método de pagamento. Nele você pode ver lojas de todo o mundo que aceitam Bitcoin, com filtros por categoria e país. Atualmente não existem muitas lojas cadastradas no site, mas mesmo sendo um tanto desconhecido, o número de lojas vem crescendo rapidamente.



Começamos o desenvolvimento do BTC-Stores há algumas semanas atrás, e até o momento temos diversas coisas já desenvolvidas:

~> Inserir lojas
~> Pesquisar por título da loja, descrição da loja, país e categoria.
~> Converter URL cadastrada por url encurtada
~> CRUD (Create, Read, Update, Delete) das categorias
~> CRUD dos países
~> Páginas estáticas (Sobre, Contato, etc.)
~> SEO básico para todas as páginas


Mas como o site está começando a ficar um pouco popular, já temos diversos planos para expandi-lo. Como somos um projeto open-source, sempre vamos escutar o que a comunidade tem a dizer, o que a comunidade de fato precisa e vamos agir sempre de acordo com isso. 

De forma geral podemos dizer que as implementações futuras serão:

~> Melhorar e repensar o design
~> Funcionalidade de adicionar lojas da DeepWeb
~> Adicionar uma grande quantidade de lojas para o banco de dados


Bom, estamos ansiosos e esperamos ter bastante tempo disponível para investir nesse projeto. Se a economia tem que ser descentralizada / livre (ainda tenho minhas dúvidas sobre isso), o conhecimento e a informação também tem que ser. Esperamos ser um site referência no futuro, mas ainda temos muito trabalho duro pela frente.

Se você ama Bitcoins, você provavelmente amou a ideia de um indexador open-source. Nesse caso, que tal dar uma olhada no nosso projeto? Estamos sempre atentos a críticas, sugestões e opiniões da comunidade, portanto sinta-se a vontade para:

~> Adicionar a sua loja ao nosso site
~> Desenvolver junto conosco (código ou design)
~> Sugerir melhorias ou fazer quaisquer críticas
~> Reportar bugs
~> Se você realmente gostou do BTC-Stores, poste no seu blog / site / grupo sobre o nosso projeto!


Até mais, marujos!

[Tutorial] Rails 4 - Como renomear Rotas REST da URL

Recentemente criei um novo projeto em Rails 4 e estou quebrando um pouco a cabeça com as grandes mudanças sofridas neste fantástico framework. 

Alguma vez você já deve ter criado algum modelo com determinado nome e se arrependeu disso depois, pois a URL não condizia com o conteúdo das páginas. Imagine você tendo um agregador de links, faria sentido ter uma URL como a seguinte?
http://www.meusite.com/items/1

Provavelmente não, mas felizmente o Rails fornece uma grande opção para você renomear as suas rotas REST da URL. Nesse caso, no seu arquivo routes.rb teria algo como:
resources :items

Caso você queria renomear todas as suas Rotas para algo da sua escolha é muito fácil:
resources :items, :path => "links"

Agora teremos uma nova URL para a mesma Rota:
http://www.meusite.com/links/1

Muito simples, não? Esta postagem foi baseada nesta pergunta do Stack Overflow.