Tip 1: Visualizar LOGS da aplicação direto no browser
Em primeiro lugar, abra o config/environments/production.rb e altere o config.level para warning.
config.log_level = :warn
Crie um controller para a página de logs
script/generate controller logs index
No controller vamos adicionar actions para buscar o conteúdo, limpar o log e fazer backup. Você pode adicionar um filtro de autorização para controlar o acesso aos logs.
class LogsController adicione alguma autenticação
LOG_PATH = "#{Rails.root}/log/#{Rails.env}.log"
def index
@log_content = File.read(LOG_PATH)
@log_size = File.size?(LOG_PATH).to_f/1048576 #converts file size to MB
end
def backup
send_file LOG_PATH,
:type => "text/plain",
:stream => false,
:filename => "log_backup_#{Date.today}"
end
def clear
File.open(LOG_PATH, "w") do |log_file|
log_file.write "Log file cleared at #{Time.now}\n"
end
flash[:notice] = "log was cleared\n"
redirect_to log_path
end
end
Precisamos criar uma rota para a página de log. Altere o arquivo /config/routes.rbmap.with_options :controller => "logs" do |logs|
logs.log "log", :action => "index"
logs.clear_log "clear_log", :action => "clear"
logs.backup_log "backup_log", :action => "backup"
end
Por último, crie a página que mostra os logs no browser. A página fica em views/logs/index.html.erb:
<p>Log size: <%= "%0.3f" % @log_size %>MB</p>
<p>
<%= link_to "clear log", clear_log_path, :confirm => "Are you sure you want to clear the log?" %> |
<%= link_to "backup log", backup_log_path %>
</p>
<pre>
<%= @log_content %>
</pre>
Tip 2: Fazendo mensagens flash do Rails sumirem após certo intervalo
Para testar, crie um controller que sete uma flash[:notice]
class FlashController < ApplicationController
def index
flash[:notice] = "Coloque aqui a mensagem"
end
end
Na view, importe os javascripts
<%= javascript_include_tag :all %>
e use os efeitos do scriptaculos:
<%- flash.each do |flash_type, message| -%>
<%= content_tag :div, message, :class => "flash", :id => flash_type %>
<% content_tag :script, :type => "text/javascript" do %>
setTimeout("new Effect.Fade('<%= flash_type %>');", 1000);
<% end %>
<%- end -%>
Tip 3: Usando o RDoc
Essa é amais simples, mas alguns podem não conhecer.
Para gerar uma documentação do seu software semelhante a do Ruby, coloque os comentários como abaixo:
# User records should require:
# * first_name
# * last_name
# * email
# all other attributes are optional
class User < ActiveRecord::Base
# returns the first_name and last_name attributes separated by a space
def name
"#{first_name} #{last_name}"
end
end
Para gerar, no terminal rode rake doc:app
Sua app rails terá a documentação em HTML no diretório /docscomments powered by Disqus