aboutsummaryrefslogtreecommitdiffstats
path: root/guides/source/pt_br
diff options
context:
space:
mode:
Diffstat (limited to 'guides/source/pt_br')
-rw-r--r--guides/source/pt_br/4_0_release_notes.md883
-rw-r--r--guides/source/pt_br/_license.html.erb2
-rw-r--r--guides/source/pt_br/_welcome.html.erb19
-rw-r--r--guides/source/pt_br/credits.html.erb76
-rw-r--r--guides/source/pt_br/documents.yaml163
-rw-r--r--guides/source/pt_br/index.html.erb30
-rw-r--r--guides/source/pt_br/layout.html.erb148
7 files changed, 1321 insertions, 0 deletions
diff --git a/guides/source/pt_br/4_0_release_notes.md b/guides/source/pt_br/4_0_release_notes.md
new file mode 100644
index 0000000000..5adf86412a
--- /dev/null
+++ b/guides/source/pt_br/4_0_release_notes.md
@@ -0,0 +1,883 @@
+Release do Ruby on Rails versão 4
+===============================
+
+* Ruby 1.9.3 ou verões superiores.
+* Parâmetros Fortes
+* Fila API
+* Melhorias com Caches
+
+Estas notas de lançamento cobrem as grandes mudanças, mas não incluem cada correção de bugs e cada mudança. Se você quiser ver tudo, confira a <a href="https://github.com/rails/rails/commits/master">lista de commits</a> no repositório principal do <a href="https://github.com/rails/rails/">Rails</a> no GitHub.
+
+--------------------------------------------------------------------------------
+
+Atualização do Rails 4.0
+----------------------
+
+TODO. Este é um guia WIP.
+
+Se você está atualizando uma aplicação que já existe, que é uma ótima idéia ter uma boa cobertura de testes antes de ir afundo. Você também deve
+primeiro atualizar para o Rails 3.2, caso se você ainda não ter, e tenha certeza que sua aplicação ainda corre como o esperado antes de tentar uma atualização para Rails 4.0. Em seguida, leve em conta os seguintes alterações:
+
+### Rails 4.0 requer pelo menos o Ruby 1.9.3 ou superior
+
+Rails 4.0 requer o Ruby 1.9.3 ou superior. O suporte para todas as versões anteriores do Ruby foi descartado oficialmente e você deve atualizar o seu mais cedo possível.
+
+### O que atualizar em seus aplicativos:
+
+* Atualize seu Gemfile que depende
+ * `rails = 4.0.0`
+ * `sass-rails ~> 3.2.3`
+ * `coffee-rails ~> 3.2.1`
+ * `uglifier >= 1.0.3`
+
+TODO. Atualizar as versões anteriores.
+
+* Rails 4.0 remove vendor/plugins completamente. Você tem que substituir esses plugins, extraindo-os como gems e adicioná-los em seu Gemfile. Se você optar por não fazer gems, você pode movê-los para, digamos, `lib/my_plugin/*` e adicione um inicializador apropriado em `config/initializers/my_plugin.rb`.
+
+TODO. Alterações de configuração em arquivos de ambiente
+
+Criando uma aplicação com Rails 4.0
+----------------------
+
+``` ruby
+ Você deve ter a gem 'rails' instalada
+$ rails new myapp
+$ cd myapp
+```
+
+### Fornecendo Gems
+
+Rails agora usa um Gemfile na raiz do aplicativo para determinar as gems que você necessita para o seu aplicativo para iniciar. Este Gemfile é processado pela gem [Bundler](https://github.com/carlhuda/bundler), que em seguida, instala todas as suas dependências. Ele pode até mesmo instalar todas as dependências localmente para o seu aplicativo para que ele não dependa das gems do sistema.
+
+Mais informações: [página inicial Bundler](http://gembundler.com/)
+
+### Vivendo no Limite
+
+Bundler e Gemfile congelam sua aplicação Rails fácil como a torta com o novo comando dedicado de bundle. Se você quiser agrupar direto do repositório Git, você pode passar o flag --edge:
+
+``` ruby
+$ rails new myapp --edge
+```
+
+Se você tem um check-out local do repositório Rails e quer gere um aplicativo usando isso, você pode passar o flag --dev:
+
+``` ruby
+$ ruby /path/to/rails/railties/bin/rails new myapp --dev
+```
+
+Características Principais
+----------------------
+
+Documentação
+----------------------
+
+Guias são reescritos usando Markdown do GitHub.
+
+Railties
+----------------------
+
+* Permitir gerar scaffold/model/migration para aceitar um modificador polimórfico para references / belongs_to, por exemplo
+
+ ``` ruby
+ rails g model Product supplier:references{polymorphic}
+ ```
+
+ logo irá gerar o modelo com belongs_to :supplier, associação polymorphic: true e migração adequada.
+
+* Definir config.active_record.migration_error para :page_load para o desenvolvimento.
+
+* Adiciona um corredor para Rails::Railtie como um hook chamado apenas após o início do corredor.
+
+* Adicionar um caminho /rails/info/routes que mostra a mesma informação como rake routes
+
+* Melhoria rake routes de saída para redirecionamentos.
+
+* Coloca todos os ambientes disponíveis no config.paths["config/environments"].
+
+* Adiciona config.queue_consumer para permitir que o consumo padrão a seja configurável.
+
+* Adicionar Rails.queue como uma interface com uma implementação padrão que consome jobs em um segmento separado.
+
+* Remover Rack::SSL em favor de ActionDispatch::SSL.
+
+* Permitem definir a classe que será usada para executar no console, além do IRB, com Rails.application.config.console=. É melhor para adicioná-la em bloco para o console.
+
+ ```ruby
+ # it can be added to config/application.rb
+ console do
+ # this block is called only when running console,
+ # so we can safely require pry here
+ require "pry"
+ config.console = Pry
+ end
+ ```
+
+* Adicionar um método hide! para geradores Rails para esconder o namespace padrão gerado será exibido ao executar rails generate.
+
+* Scaffold agora usa content_tag_for em index.html.erb .
+
+* Rails::Plugin foi removido. Em vez de adicionar plugins para vendor/plugins, use gems ou Bundler com o caminho ou git dependências.
+
+### Deprecações
+
+Action Mailer
+----------------------
+
+* Permitem definir as opções padrão do Action Mailer via config.action_mailer.default_options=.
+
+* Eleva uma exceção ActionView::MissingTemplate quando nenhum modelo implícito poderia ser encontrado.
+
+* De forma assíncrona enviar mensagens através do Rails Queue.
+
+* Opções de entrega (como configurações de SMTP) agora pode ser definida dinamicamente pelo mailer action.
+
+ Opções de entrega são definidas através da chave `:delivery_method_options` chave no correio.
+
+ ``` ruby
+ def welcome_mailer(user,company)
+ delivery_options = { user_name: company.smtp_user, password: company.smtp_password, address: company.smtp_host }
+ mail(to: user.email, subject: "Welcome!", delivery_method_options: delivery_options)
+ end
+ ```
+
+Action Pack
+----------------------
+
+### Action Controller
+
+* Adiciona o método ActionController::Flash.add_flash_types para permitir que as pessoas registrarem seus tipos próprio Flash. por exemplo:
+
+ ``` ruby
+ class ApplicationController
+ add_flash_types :error, :warning
+ end
+ ```
+
+ Se você adicionar o código acima, você pode usar <%= error %> em uma erb, e redirect_to /foo, :error => 'message' em um controller.
+
+* Removeido a dependência Active Model de Action Pack.
+
+* Suporte a caracteres Unicode em rotas. Rota será automaticamente escada, assim em vez de escapar manualmente:
+
+ ``` ruby
+ get Rack::Utils.escape('こんにちは') => 'home#index'
+ ```
+
+ Você apenas tem que escrever a rota unicode:
+
+ ``` ruby
+ get 'こんにちは' => 'home#index'
+ ```
+
+* Retornar formato adequado em exceções.
+
+* Extraído redirecionar lógica de:
+ ActionController::ForceSSL::ClassMethods.force_ssl em
+ ActionController::ForceSSL#force_ssl_redirect.
+
+* Parâmetros de URL path com codificação inválida agora levantar ActionController::BadRequest.
+
+* Consulta malformada e parâmetro hashes de solicitação agora levantar ActionController::BadRequest.
+
+* respond_to e respond_with agora levantar ActionController::UnknownFormat em vez de diretamente retornando cabeçalho 406. A exceção é resgatada e convertida para 406 no middleware de manipulação de exceção.
+
+* JSONP agora usa application/javascript, em vez de application/json como o tipo de MIME.
+
+* Argumentos de sessão passados para processar chamadas em testes funcionais estão agora incorporadas a sessão existente, enquanto que anteriormente iriam substituir a sessão existente. Essa mudança pode quebrar alguns testes existentes, se eles estão afirmando o conteúdo exato da sessão, mas não deve quebrar os testes existentes que apenas afirmam chaves individuais.
+
+* Formas de persistir registros usa sempre PATCH (através do _method hack).
+
+* Para os recursos, tanto PATCH e PUT são encaminhadas para a action update.
+
+* Não ignore o force_ssl em desenvolvimento. Esta é uma mudança de comportamento - use uma condição :if para recriar o comportamento antigo.
+
+ ``` ruby
+ class AccountsController < ApplicationController
+ force_ssl :if => :ssl_configured?
+
+ def ssl_configured?
+ !Rails.env.development?
+ end
+ end
+ ```
+
+#### Deprecações
+
+* Obsoleto ActionController::Integration em favor da ActionDispatch::Integration.
+
+* Obsoleto ActionController::IntegrationTest em favor de ActionDispatch::IntegrationTest.
+
+* Obsoleta ActionController::PerformanceTest em favor de ActionDispatch::PerformanceTest.
+
+* Obsoleta ActionController::AbstractRequest em favor de ActionDispatch::Request.
+
+* Obsoleta ActionController::Request em favor de ActionDispatch::Request.
+
+* Obsoleta ActionController::AbstractResponse em favor de ActionDispatch::Response.
+
+* Obsoleta ActionController::Response em favor de ActionDispatch::Response.
+
+* Obsoleta ActionController::Routing em favor de ActionDispatch::Routing.
+
+
+### Action Dispatch
+
+* Adicionado roteamento Concern para declarar rotas comuns que podem ser reutilizadas dentro de outros resources e routes.
+
+ Codigo Antes:
+
+ ``` ruby
+ resources :messages do
+ resources :comments
+ end
+
+ resources :posts do
+ resources :comments
+ resources :images, only: :index
+ end
+ ```
+
+ Codigo Depois:
+
+ ``` ruby
+ concern :commentable do
+ resources :comments
+ end
+
+ concern :image_attachable do
+ resources :images, only: :index
+ end
+
+ resources :messages, concerns: :commentable
+
+ resources :posts, concerns: [:commentable, :image_attachable]
+ ```
+
+* Mostrar rotas na página de exceção durante a depuração de um RoutingError em desenvolvimento.
+
+* Incluído mounted_helpers (ajudantes para acessar engines montadas) em ActionDispatch::IntegrationTest por padrão.
+
+* Adicionado middleware ActionDispatch::SSL que quando incluídos forçar todos os pedidos de estar sob o protocolo HTTPS
+
+* Copía rota de Constantes literais para os padrões de modo que a geração da url sabe sobre elas. As restrições copiadas são :protocol, :subdomain,
+ :domain, :host e :port
+
+* Permite assert_redirected_to para o jogo contra uma expressão regular.
+
+* Adiciona um backtrace para a página de erro de roteamento em desenvolvimento.
+
+* assert_generates , assert_recognizes e assert_routing tudo em Assertion vez de RoutingError.
+
+* Permite que a raiz ajude o caminho a tomar um argumento string. Por exemplo, `root 'pages#main'` como um atalho para `root to: 'pages#main'`.
+
+* Adiciona suporte para o verbo PATCH: pedido de objetos responde a patch?. Rotas tem agora um novo método patch, e compreende :patch nos lugares existentes onde um verbo está configurado, como :via. Testes funcionais têm um novo método patch e testes de integração têm um novo método patch_via_redirect. Se :patch é o verbo padrão para atualizações, as edições são tuneladas como PATCH e não como PUT e encaminhando de acordo com a conformidade.
+
+* Testes de integração suporta o método OPTIONS.
+
+* expires_in aceita um flag must_revalidate. Se for verdade, "deve-revalidar" é adicionado ao cabeçalho Cache-Control.
+
+* Padrão de resposta agora sempre usa o seu bloco substituído em respond_with para tornar a sua resposta.
+
+* Desligado o modo de detalhe de rack-cache, ainda temos X-Rack-Cache para verificar essa informação.
+
+#### Deprecações
+
+### Action View
+
+* Remove a dependência Active Model de Action Pack.
+
+* Permiti a utilização mounted_helpers (ajudantes para acessar engines montadas) em ActionView::TestCase.
+
+* Faz o objeto atual e contador (quando se aplica) variáveis acessíveis na renderização de modelos com :object ou :collection.
+
+* Permiti a carga lenta do default_form_builder passando uma string em vez de uma constante.
+
+* Adicionado método de índice para classe FormBuilder
+
+* Adicionado suporte para layouts ao renderizar um parcial com uma coleção.
+
+* Remover :disable_with em favor da opção data-disable-with dos ajudantes submit_tag, button_tag e button_to.
+
+* Remover opção :mouseover do helper image_tag.
+
+* Modelos sem uma extensão de manipulador levanta agora um aviso de reprovação, mas ainda padrões para ERb. Em versões futuras, ele simplesmente irá retornar o conteúdo do modelo.
+
+* Adicionado uma opção divider de grouped_options_for_select para gerar um separador optgroup automaticamente, e depreciado prompt como terceiro argumento, em favor do uso de um hash de opções.
+
+* Adicionado helpers time_field e time_field_tag que fazem com que uma tag input[type="time"].
+
+* Removido a obsoleta apis text_helper de highlight, excerpt e word_wrap.
+
+* Remover o \n principal acrescentado pelo textarea em assert_select.
+
+* Valor padrão mudou para config.action_view.embed_authenticity_token_in_remote_forms para falso. Esta alteração quebra formas remotas que precisam trabalhar também sem JavaScript, por isso, se você precisar de tal comportamento, você pode defini-lo como verdadeiro ou explicitamente passar :authenticity_token => true nas opções do formulário.
+
+* Possibilita o uso de um bloco em helper button_to se o texto do botão é difícil de encaixar no parâmetro nome:
+
+ ``` ruby
+ <%= button_to [:make_happy, @user] do %>
+ Make happy <strong><%= @user.name %></strong>
+ <% end %>
+ # => "<form method="post" action="/users/1/make_happy" class="button_to">
+ # <div>
+ # <button type="submit">
+ # Make happy <strong>Name</strong>
+ # </button>
+ # </div>
+ # </form>"
+ ```
+
+* Substituido argumento booleano include_seconds com opção :include_seconds => true na assinatura de distance_of_time_in_words e time_ago_in_words.
+
+* Removido helpers button_to_function e link_to_function.
+
+* truncate agora sempre retorna um string HTML escapada. A opção :escape pode ser utilizado como false a não escapar do resultado.
+
+* Adicionado helpers color_field e color_field_tag.
+
+* Adicionadi opção include_hidden para selecionar tag. Com :include_hidden => false selecionado com atributos múltiplos não gera entrada hidden com valor em branco.
+
+* Removida a opção de tamanho padrão dos helpers text_field, search_field, telephone_field, url_field, email_field.
+
+* Removido opções padrões cols e rows do helper text_area.
+
+* Adicionado tag's helpers ativa image_url, javascript_url, stylesheet_url, audio_url, video_url, e font_url. Essas URL helpers irá retornar o caminho completo para o seu assets. Isto é útil quando você está precisando referenciar este host externo ativo.
+
+* Permitido argumentos value_method e text_method do collection_select e options_from_collection_for_select para receber um objeto que responde :call como um proc, para avaliar a opção no contexto atual do elemento. Isso funciona da mesma forma com collection_radio_buttons e collection_check_boxes.
+
+* Adicionado helpers date_field e date_field_tag que renderizam uma tag input[type="date"].
+
+* Adicionado form helpers collection_check_boxes, semelhante a collection_select:
+
+ ``` ruby
+ collection_check_boxes :post, :author_ids, Author.all, :id, :name
+ # Outputs something like:
+ <input id="post_author_ids_1" name="post[author_ids][]" type="checkbox" value="1" />
+ <label for="post_author_ids_1">D. Heinemeier Hansson</label>
+ <input id="post_author_ids_2" name="post[author_ids][]" type="checkbox" value="2" />
+ <label for="post_author_ids_2">D. Thomas</label>
+ <input name="post[author_ids][]" type="hidden" value="" />
+ ```
+
+ Os pares de label/check_box pode ser personalizado com um bloco.
+
+* Adicionado form helpers collection_radio_buttons, semelhante a collection_select:
+
+ ``` ruby
+ collection_radio_buttons :post, :author_id, Author.all, :id, :name
+ # Outputs something like:
+ <input id="post_author_id_1" name="post[author_id]" type="radio" value="1" />
+ <label for="post_author_id_1">D. Heinemeier Hansson</label>
+ <input id="post_author_id_2" name="post[author_id]" type="radio" value="2" />
+ <label for="post_author_id_2">D. Thomas</label>
+ ```
+
+ Os pares de label/radio_button pode ser personalizado com um bloco.
+
+* check_box com um atributo HTML5 :form agora replica o :form de atributo para o campo oculto também.
+
+* helper de label do formulário aceita :for => nil para não gerar o atributo.
+
+* Adicionado opção :format de number_to_percentage.
+
+* Adicionado config.action_view.logger para configurar logger na Action View.
+
+* helper check_box com :disabled => true irá gerar um campo disabled oculto para se conformar com a convenção de HTML onde os campos com deficiência não foram apresentados com o formulário. Esta é uma mudança de comportamento, anteriormente a tag oculta tinha um valor da caixa de seleção deficientes.
+
+* helper favicon_link_tag irá agora usar o favicon em app/assets por padrão.
+
+* ActionView::Helpers::TextHelper#highlight agora padrões para os elementos HTML5.
+
+#### Deprecações
+
+### Sprockets
+
+Mudou-se para uma gem separada chamada sprockets-rails.
+
+Active Record
+----------------------
+
+* Adicionado declarações add_reference e remove_reference do schema. Alias, add_belongs_to e remove_belongs_to são aceitáveis. Referências são reversíveis.
+
+ ``` ruby
+ # Criar uma coluna user_id
+ add_reference(:products, :user)
+
+ # Criar um supplier_id, colunas supplier_type e índice apropriado<
+ add_reference(:products, :supplier, polymorphic: true, index: true)
+
+ # Remove referência polimórfica
+ remove_reference(:products, :supplier, polymorphic: true)
+ ```
+
+* Adicionado opções :default e :null para column_exists?.
+
+ ``` ruby
+ column_exists?(:testings, :taggable_id, :integer, null: false)
+ column_exists?(:testings, :taggable_type, :string, default: 'Photo')
+ ```
+
+* ActiveRecord::Relation#inspect agora deixa claro que você está lidando com um objeto de Relation, em vez de um array:
+
+ ``` ruby
+ User.where(:age => 30).inspect
+ # => <ActiveRecord::Relation [#<User ...>, #<User ...>]>
+
+ User.where(:age => 30).to_a.inspect
+ # => [#<User ...>, #<User ...>]
+ ```
+
+ Se mais de 10 itens são devolvidos pela relação, `inspect` mostrará apenas os 10 primeiros, seguidos de reticências.
+
+* Adicionado suporte :collation e :ctype ao PostgreSQL. Estes estão disponíveis para PostgreSQL 8.4 ou posterior.
+
+ ``` ruby
+ development:
+ adapter: postgresql
+ host: localhost
+ database: rails_development
+ username: foo
+ password: bar
+ encoding: UTF8
+ collation: ja_JP.UTF8
+ ctype: ja_JP.UTF8
+ ```
+
+* FinderMethods#exists? agora retorna false com o argumento false.
+
+* Adicionado suporte para a especificação a precisão de um timestamp, no adaptador postgresql. Assim, em vez de ter de especificar a precisão incorretamente usando a opção :limit, você pode usar :precision, como pretendido. Por exemplo, em uma migração:
+
+ ``` ruby
+ def change
+ create_table :foobars do |t|
+ t.timestamps :precision => 0
+ end
+ end
+ ```
+
+* Permiti ActiveRecord::Relation#pluck a aceitação de várias colunas. Retorna uma array de arrays contendo os valores typecasted:
+
+ ``` ruby
+ Person.pluck(:id, :name)
+ # SELECT people.id, people.name FROM people
+ # => [[1, 'David'], [2, 'Jeremy'], [3, 'Jose']]
+ ```
+
+* Melhorar a derivação do nome da tabela HABTM de junção de ter em conta o assentamento. Ele agora leva os nomes de tabela dos dois modelos, classifica-as lexicalmente e depois se junta a eles, tirando qualquer prefixo comum do nome segunda tabela. Alguns exemplos:
+
+ ``` ruby
+ Melhores níveis de modelos (Category <=> Product)
+ Antigo: categories_products
+ Novo: categories_products
+
+ Melhores modelos de nível com um table_name_prefix global (Category <=> Product)
+ Antigo: site_categories_products
+ Novo: site_categories_products
+
+ Modelos aninhados em um módulo sem um método table_name_prefix (Admin::Category <=> Admin::Product)
+ Antigo: categories_products
+ Novo: categories_products
+
+ Modelos aninhados em um módulo com um método table_name_prefix (Admin::Category <=> Admin::Product)
+ Antigo: categories_products
+ Novo: admin_categories_products
+
+ Modelos aninhados em um modelo pai (Catalog::Category <=> Catalog::Product)
+ Antigo: categories_products
+ Novo: catalog_categories_products
+
+ Modelos aninhados em modelos de ligações diferentes (Catalog::Category <=> Content::Page)
+ Antigo: categories_pages
+ Novo: catalog_categories_content_pages
+ ```
+
+* Movido as verificações de validade HABTM para ActiveRecord::Reflection. Um efeito colateral disso é se mover quando as exceções são levantadas a partir do ponto de declaração quando a associação é construída. Isso é consistente com outras verificações de validade de associação.
+
+* Adicionado hash stored_attributes que contém os atributos armazenados usando ActiveRecord::Store. Isso permite que você recupere a lista de atributos que você definiu.
+
+ ``` ruby
+ class User < ActiveRecord::Base
+ store :settings, accessors: [:color, :homepage]
+ end
+
+ User.stored_attributes[:settings] # [:color, :homepage]
+ ```
+
+* Nível de registro padrão do PostgreSQL é agora "aviso", para ignora as mensagens `Notice`. Você pode alterar o nível de log usando a opção disponível min_messages no seu config/database.yml.
+
+* Adicionado suporte datatype uuid ao adaptador PostgreSQL.
+
+* Adicionado ActiveRecord::Migration.check_pending! que gera um erro se as migrações estão pendentes.
+
+* Adicionado #destroy! que atua como #destroy, mas irá gerar uma exceção ActiveRecord::RecordNotDestroyed em vez de retornar false.
+
+* Permitir blocos para a contagem com ActiveRecord::Relation, que trabalham semelhante ao Array#count:Person.where("age > 26").count{ |person| person.gender == 'female' }
+
+* Adicionado suporte para CollectionAssociation#delete para passar valores Fixnum ou String como IDs de registro. Este encontra os registros que respondem aos ids e exclui-los.
+
+ ``` ruby
+ class Person < ActiveRecord::Base
+ has_many :pets
+ end
+
+ person.pets.delete("1") # => [#<Pet id: 1>]
+ person.pets.delete(2, 3) # => [#<Pet id: 2>, #<Pet id: 3>]
+ ```
+
+* Não é mais possível para destruir um modelo marcado como somente leitura.
+
+* Adicionado a capacidade de ActiveRecord::Relation#from aceitar outro objetos ActiveRecord::Relation.
+
+* Adicionado suporte à codificadores personalizado para ActiveRecord::Store. Agora você pode definir o codificador personalizado como este:
+
+ ``` ruby
+ store :settings, accessors: [ :color, :homepage ], coder: JSON
+ ```
+
+* Conexões mysql e mysql2 irá definir SQL_MODE=STRICT_ALL_TABLES por padrão, para evitar perda de dados. Isto pode ser desabilitado, especificando strict: false em config/database.yml.
+
+* Adicionado ordem padrão de ActiveRecord::Base#first para assegurar resultados consistentes entre as engines diferentes de banco de dados. Introduzido ActiveRecord::Base#take como um substituto para o comportamento antigo.
+
+* Adicionado uma opção :index para criar automaticamente índices para references e declarações belongs_to em migrações. Este pode ser um booleano ou um hash que é idêntico a opções disponíveis para o método add_index:
+
+ ``` ruby
+ create_table :messages do |t|
+ t.references :person, :index => true
+ end
+ ```
+
+ É o mesmo que:
+ ``` ruby
+ create_table :messages do |t|
+ t.references :person
+ end
+ add_index :messages, :person_id
+ ```
+
+ Geradores também foram atualizados para usar a nova sintaxe.
+
+* Adicionado métodos bang para mutação de objetos ActiveRecord::Relation. Por exemplo, enquanto foo.where(:bar) irá retornar um novo objeto deixando foo inalterado, foo.where!(:bar) vai transformar o objeto foo.
+
+* Adicionado #find_by e #find_by! para espelhar a funcionalidade fornecida por finders dinâmicos de uma forma que permite a entrada dinâmica mais facilmente:
+
+ ``` ruby
+ Post.find_by name: 'Spartacus', rating: 4
+ Post.find_by "published_at < ?", 2.weeks.ago
+ Post.find_by! name: 'Spartacus'
+ ```
+
+* Adicionado ActiveRecord::Base#slice para retornar um hash dos métodos indicados com seus nomes como chaves e valores retornados como valores.
+
+* Removido IdentityMap - IdentityMap nunca se formou para ser uma caracterísca "ativada-por-padrão", devido a algumas inconsistências com associações, conforme descrito neste [commit](https://github.com/rails/rails/commit/302c912bf6bcd0fa200d964ec2dc4a44abe328a6). Daí a retirada da base de código, até que tais questões são fixas.
+
+* Adicionou um recurso para o estado interno dump/load de exemplo de SchemaCache, porque queremos iniciar mais rapidamente quando temos muitos modelos.
+
+ ``` ruby
+ # executa rake task.
+ RAILS_ENV=production bundle exec rake db:schema:cache:dump
+ => generate db/schema_cache.dump
+
+ # Adiciona config.use_schema_cache_dump = true em config / production.rb. BTW, true é default.
+
+ # boot rails.
+ RAILS_ENV=production bundle exec rails server
+ => use db/schema_cache.dump
+
+ # Se você remover o cache despejado claro, executar a tarefa rake.
+ RAILS_ENV=production bundle exec rake db:schema:cache:clear
+ => remove db/schema_cache.dump
+ ```
+
+* Adicionado suporte para índices parciais para adaptador PostgreSQL.
+
+* O método add_index agora suporta uma opção where que recebe uma string com os critérios dos índices parciais.
+
+* Adicionado a classe implementar, o ActiveRecord::NullRelation, o padrão de objeto nulo para a classe Relation.
+
+* Implementado método ActiveRecord::Relation#none que retorna uma relação em cadeia com zero registros (uma instância da classe NullRelation). Qualquer condição subseqüente acorrentado a retorno de Relation continuará gerando uma relação vazia e não dispara qualquer consulta ao banco de dados.
+
+* Adicionado helper create_join_table de migração para criar tabelas juntadas HABTM.
+
+ ``` ruby
+ create_join_table :products, :categories
+ # =>
+ # create_table :categories_products, :id => false do |td|
+ # td.integer :product_id, :null => false
+ # td.integer :category_id, :null => false
+ # end
+ ```
+
+* A primary key sempre é inicializada no hash @attributes para zero (a menos que outro valor tenha sido especificado).
+
+* Em versões anteriores, o seguinte seria gerado uma única consulta com um OUTER JOIN comments, em vez de duas consultas distintas:
+
+ ``` ruby
+ Post.includes(:comments).where("comments.name = 'foo'")
+ ```
+
+ Este comportamento se baseia na correspondência de string de SQL, que é uma idéia intrinsecamente errada, a menos que escreva um parser de SQL, que não queremos fazer. Portanto, agora foi substituído.
+
+ Para evitar avisos de remoção e para compatibilidade futura, você deve declarar explicitamente quais tabelas de referência, ao usar o trechos SQL:
+
+ ``` ruby
+ Post.includes(:comments).where("comments.name = 'foo'").references(:comments)
+ ```
+
+ Note que você não precisa especificar explicitamente as referências nos seguintes casos, como eles podem ser automaticamente inferidos:
+
+ ``` ruby
+ Post.where(comments: { name: 'foo' })
+ Post.where('comments.name' => 'foo')
+ Post.order('comments.name')
+ ```
+
+ Você também não precisa se preocupar com isso, a menos que você está carregando. Basicamente, não se preocupe se você ver um aviso de reprovação ou (em versões futuras) um erro de SQL devido a uma falta JOIN.
+
+* Apoio à tabela schema_info foi descartada. Por favor, mude para schema_migrations.
+
+* Conexões devem ser encerradas no final de um segmento. Se não, seu pool de conexão pode preencher e uma exceção será levantada.
+
+* Adicionado o módulo ActiveRecord::Model que pode ser incluído em uma classe como uma alternativa a herança de ActiveRecord::Base:
+
+ ``` ruby
+ class Post
+ include ActiveRecord::Model
+ end
+ ```
+
+* Registros hstore PostgreSQL pode ser criado.
+
+* Tipos hstore PostgreSQL são automaticamente desserializado do banco de dados.
+
+* Adicionado método #update_columns que atualiza os atributos do hash passado sem salvar a chamada, portanto, ignorando validações e callbacks. ActiveRecordError será levantado quando chamado em objetos novos ou quando pelo menos um dos atributos for marcado como somente leitura.
+
+ ``` ruby
+ post.attributes # => {"id"=>2, "title"=>"My title", "body"=>"My content", "author"=>"Peter"}
+ post.update_columns({title: 'New title', author: 'Sebastian'}) # => true
+ post.attributes # => {"id"=>2, "title"=>"New title", "body"=>"My content", "author"=>"Sebastian"}
+ ```
+
+### Deprecações
+
+* Obsoleto a maioria dos métodos do "localizador dinâmico". Todos os métodos dinâmicos, exceto para find_by_... e find_by_...! estão obsoletos. Veja como você pode reescrever o código:
+
+ ``` ruby
+ find_all_by_... pode ser reescrito usando where(...)
+ find_last_by_... pode ser reescrito usando where(...).last
+ scoped_by_... pode ser reescrito usando where(...)
+ find_or_initialize_by_... pode ser reescrito usando where(...).first_or_initialize
+ find_or_create_by_... pode ser reescrito usando where(...).first_or_create
+ find_or_create_by_...! pode ser reescrito usando where(...).first_or_create!
+ ```
+
+ A implementação do obsoleto finders dinâmicos foi movido para a gem active_record_deprecated_finders.
+
+* Deprecado o velho estilo hash com base localizador API. Isto significa que os métodos que previamente aceita "opções Finder" não fazem. Por exemplo este:
+
+ ``` ruby
+ Post.find(:all, :conditions => { :comments_count => 10 }, :limit => 5)
+ ```
+
+ Deve ser reescrito no novo estilo que existe desde o Rails 3:
+
+ ``` ruby
+ Post.where(comments_count: 10).limit(5)
+ ```
+
+ Note que como um passo intermediário, é possivel reescrever o código acima como:
+
+ ``` ruby
+ Post.scoped(:where => { :comments_count => 10 }, :limit => 5)
+ ```
+
+ Isso poderia poupar-lhe um monte de trabalho, se há um monte de estilo antigo usando #finder em sua aplicação.
+
+ Chamando Post.scoped(options) é um atalho para Post.scoped.merge(options). Relation#merge agora aceita um hash de opções, mas eles devem ser idênticos aos nomes do método #finder equivalente. Estes são praticamente idênticos aos de estilo antigo de opções de nomes do #finder, exceto nos seguintes casos:
+
+ ``` ruby
+ :conditions torna-se :where
+ :include torna-se :includes
+ :extend torna-se :extending
+ ```
+
+ O código para implementar as funcionalidades depreciadas foi movido para a gem active_record_deprecated_finders. Esta gem é uma dependência de Active Record no Rails 4.0. Ela deixará de ser uma dependência do Rails 4.1, mas se seu aplicativo depende dos recursos preteridos, então você pode adicioná-lo ao seu próprio Gemfile. Ela será mantida pela equipe principal do Rails até o Rails 5.0 for lançado.
+
+* Depreciado scopes avaliados.
+
+ Não use este:
+
+ ``` ruby
+ scope :red, where(color: 'red')
+ default_scope where(color: 'red')
+ ```
+
+ Use este:
+
+ ``` ruby
+ scope :red, -> { where(color: 'red') }
+ default_scope { where(color: 'red') }
+ ```
+
+ O primeiro tem inúmeras questões. É uma pegadinha comum de fazer o seguinte:
+
+ ``` ruby
+ scope :recent, where(published_at: Time.now - 2.weeks)
+ ```
+
+ Ou uma variante mais sutil:
+
+ ``` ruby
+ scope :recent, -> { where(published_at: Time.now - 2.weeks) }
+ scope :recent_red, recent.where(color: 'red')
+ ```
+
+ Scopes também são muito complexo de implementar dentro do Active Record, e ainda existem bugs. Por exemplo, o seguinte não faz o que você espera:
+
+ ``` ruby
+ scope :remove_conditions, except(:where)
+ where(...).remove_conditions # => ainda tem conditions
+ ```
+
+* Depreciação adicional para a opção de associação :dependent => :restrict.
+
+* Até agora has_many e has_one, opção :dependent => :restrict levanta uma DeleteRestrictionError no momento de destruir o objeto. Em vez disso, ele irá adicionar um erro no modelo.
+
+* Para corrigir esse aviso, verifique se seu código não está contando com uma DeleteRestrictionError e adicione config.active_record.dependent_restrict_raises = false no seu config/application.rb.
+
+* Nova aplicação rails seria gerada com o config.active_record.dependent_restrict_raises = false no config/application.rb.
+
+* O gerador de migração agora cria uma tabela de junção com (comentado) índices cada vez que o nome de migração contém a palavra "join_table".
+
+* ActiveRecord::SessionStore foi removido do Rails 4.0 e é agora uma [gem](https://github.com/rails/activerecord-session_store) separada.
+
+Active Model
+----------------------
+
+* Mudou valor padrão AM::Serializers::JSON.include_root_in_json para false. Agora, serializadores AM e objetos AR têm o mesmo comportamento padrão.
+
+ ``` ruby
+ class User < ActiveRecord::Base; end
+
+ class Person
+ include ActiveModel::Model
+ include ActiveModel::AttributeMethods
+ include ActiveModel::Serializers::JSON
+
+ attr_accessor :name, :age
+
+ def attributes
+ instance_values
+ end
+ end
+
+ user.as_json
+ => {"id"=>1, "name"=>"Konata Izumi", "age"=>16, "awesome"=>true}
+ # root não é incluido
+
+ person.as_json
+ => {"name"=>"Francesco", "age"=>22}
+ # root não é incluido
+ ```
+
+* Passando valores de hash falsos para validates não mais permitir que os validadores correspondentes.
+
+* Mensagens ConfirmationValidator de erro irá anexar :#{attribute}_confirmation em vez de attribute.
+
+* Adicionado ActiveModel::Model, um mixin para fazer objetos Ruby trabalhar com Action Pack fora da caixa.
+
+* ActiveModel::Errors#to_json suporta um novo parâmetro :full_messages.
+
+* Guarnições abaixo da API, removido valid? e errors.full_messages.
+
+### Deprecações
+
+Active Resource
+----------------------
+
+* Active Resource é removido do Rails 4.0 e é agora é separado em uma [gem](https://github.com/rails/activeresource).
+
+Active Support
+----------------------
+
+* Adicionado valores padrões para todos os métodos ActiveSupport::NumberHelper, para evitar erros com locais vazios ou falta de valores.
+
+* Time#change agora trabalha com valores de tempo com outros deslocamentos de UTC ou o fuso horário local.
+
+* Adicionado Time#prev_quarter e Time#next_quarter curto para months_ago(3) e months_since(3) .
+
+* Removido método require_association obsoleta e não de dependências.
+
+* Adicionado opção :instance_accessor para config_accessor.
+
+ ``` ruby
+ class User
+ include ActiveSupport::Configurable
+ config_accessor :allowed_access, instance_accessor: false
+ end
+
+ User.new.allowed_access = true # => NoMethodError
+ User.new.allowed_access # => NoMethodError
+ ```
+
+* Métodos ActionView::Helpers::NumberHelper foram movidos para ActiveSupport::NumberHelper e agora estão disponíveis através Numeric#to_s.
+
+* Numeric#to_s agora aceita as opções de formatação :phone, :currency, :percentage, :delimited, :rounded, :human, e :human_size.
+
+* Adicionado Hash#transform_keys, Hash#transform_keys!, Hash#deep_transform_keys e Hash#deep_transform_keys!.
+
+* Alterado xml tipo Datetime para dateTime (com letra T maiúscula).
+
+* Adicionado opção :instance_accessor para class_attribute.
+
+* Agora constantize olha na cadeia ancestral.
+
+* Adicionado Hash#deep_stringify_keys e Hash#deep_stringify_keys! para converter todas as chaves de uma instância Hash em strings.
+
+* Adicionado Hash#deep_symbolize_keys e Hash#deep_symbolize_keys! para converter todas as chaves de uma instância Hash em symbols.
+
+* Object#try não pode chamar métodos privados.
+
+* AS::Callbacks#run_callbacks removido argumento chave.
+
+* deep_dup trabalha mais agora expectavelmente e duplica também valores em instancias de Hash e elementos em ocorrências de Array.
+
+* Inflector não mais se aplica ice -> ouse a palavras como polícia, fatia.
+
+* Adicionado ActiveSupport::Deprecations.behavior = :silence para ignorar completamente depreciações Rails tempo de execução.
+
+* Torna Module#delegate parar de usar envio - já não pode delegar métodos privados.
+
+* AS::Callbacks depreciado opção :rescuable.
+
+* Adicionado Integer#ordinal para obter o sufixo ordinal de string de um inteiro.
+
+* Opção AS::Callbacks :per_key não é mais suportado.
+
+* AS::Callbacks#define_callbacks acrescentado opção :skip_after_callbacks_if_terminated.
+
+* Adicionado html_escape_once a ERB::Util, e a tag helper delega escape_once a ele.
+
+* Removido método ActiveSupport::TestCase#pending, utilize instancia de skip.
+
+* Excluído a compatibilidade método Module#method_names, utilize o Module#methods a partir de agora (que retorna símbolos).
+
+* Excluído a compatibilidade método Module#instance_method_names, utilize o Module#instance_methods a partir de agora (que retorna símbolos).
+
+* Banco de dados Unicode atualizado para 6.1.0.
+
+* Adiciona opção encode_big_decimal_as_string para forçar serialização JSON de BigDecimals como numérico em vez de envolvê-los em strings de segurança.
+
+### Deprecações
+
+* ActiveSupport::Callbacks: uso deprecado de objeto de filtro com métodos #before e #after como callback around.
+
+* BufferedLogger está obsoleto. Use ActiveSupport::Logger ou o logger de Ruby stdlib.
+
+* Despreza a compatibilidade Module#local_constant_names e use Module#local_constants instancia (que retorna símbolos).
+
+Créditos
+----------------------
+
+Veja a [lista completa de contribuidores do Rails](http://contributors.rubyonrails.org/) para as muitas pessoas que passam muitas horas contribuindo com o Rails, o quadro estável e robusto que é. Parabéns a todos eles.
+
+Créditos da tradução para [Rodrigo Martins](http://github.com/rrmartins) \ No newline at end of file
diff --git a/guides/source/pt_br/_license.html.erb b/guides/source/pt_br/_license.html.erb
new file mode 100644
index 0000000000..c709acd4a3
--- /dev/null
+++ b/guides/source/pt_br/_license.html.erb
@@ -0,0 +1,2 @@
+<p>Esta obra está licenciada sob uma lincença <a href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike 3.0</a> License</p>
+<p>"Rails", "Ruby on Rails", e a logo do Rails são marcas registradas de David Heinemeier Hansson. Todos os direitos reservados.</p>
diff --git a/guides/source/pt_br/_welcome.html.erb b/guides/source/pt_br/_welcome.html.erb
new file mode 100644
index 0000000000..b4c1d44f07
--- /dev/null
+++ b/guides/source/pt_br/_welcome.html.erb
@@ -0,0 +1,19 @@
+<h2>Guia Ruby on Rails (<%= @version %>)</h2>
+
+<% if @edge %>
+<p>
+ Estes são <b>Edge Guides</b>, baseado no branch corrente <a href="https://github.com/rails/rails/tree/<%= @version %>">master</a>.
+</p>
+<p>
+ Se você está procurando a versão estável, por favor, verifique
+ <a href="http://guides.rubyonrails.org">http://guides.rubyonrails.org</a> ao invés.
+</p>
+<% else %>
+<p>
+ Estas são as guias novas para 3.2 com base em Rails <a href="https://github.com/rails/rails/tree/<%= @version %>"><%= @version %></a>.
+ Estes guias são projetadas para fazer com que você seja imediatamente produtivo com o Rails, e para ajudar você a entender como todas as peças se encaixam.
+</p>
+<% end %>
+<p>
+ Os guias para Rails 2.3.x estão disponíveis em <a href="http://guides.rubyonrails.org/v2.3.11/">http://guides.rubyonrails.org/v2.3.11/</a>.
+</p>
diff --git a/guides/source/pt_br/credits.html.erb b/guides/source/pt_br/credits.html.erb
new file mode 100644
index 0000000000..915d2ad739
--- /dev/null
+++ b/guides/source/pt_br/credits.html.erb
@@ -0,0 +1,76 @@
+<% content_for :page_title do %>
+Ruby on Rails Guides: Credits
+<% end %>
+
+<% content_for :header_section do %>
+<h2>Creditos</h2>
+
+<p>Nós gostaríamos de agradecer às seguintes pessoas por suas contribuições incansáveis para este projeto.</p>
+
+<% end %>
+
+<h3 class="section">Rails Guides Reviewers</h3>
+
+<%= author('Vijay Dev', 'vijaydev', 'vijaydev.jpg') do %>
+ Vijayakumar, found as Vijay Dev on the web, is a web applications developer and an open source enthusiast who lives in Chennai, India. He started using Rails in 2009 and began actively contributing to Rails documentation in late 2010. He <a href="https://twitter.com/vijay_dev">tweets</a> a lot and also <a href="http://vijaydev.wordpress.com">blogs</a>.
+<% end %>
+
+<%= author('Xavier Noria', 'fxn', 'fxn.png') do %>
+ Xavier Noria has been into Ruby on Rails since 2005. He is a Rails core team member and enjoys combining his passion for Rails and his past life as a proofreader of math textbooks. Xavier is currently an independent Ruby on Rails consultant. Oh, he also <a href="http://twitter.com/fxn">tweets</a> and can be found everywhere as &quot;fxn&quot;.
+<% end %>
+
+<h3 class="section">Rails Guides Designers</h3>
+
+<%= author('Jason Zimdars', 'jz') do %>
+ Jason Zimdars is an experienced creative director and web designer who has lead UI and UX design for numerous websites and web applications. You can see more of his design and writing at <a href="http://www.thinkcage.com/">Thinkcage.com</a> or follow him on <a href="http://twitter.com/JZ">Twitter</a>.
+<% end %>
+
+<h3 class="section">Rails Guides Authors</h3>
+
+<%= author('Ryan Bigg', 'radar', 'radar.png') do %>
+Ryan Bigg works as a consultant at <a href="http://rubyx.com">RubyX</a> and has been working with Rails since 2006. He's co-authoring a book called <a href="http://manning.com/katz">Rails 3 in Action</a> and he's written many gems which can be seen on <a href="http://github.com/radar">his GitHub page</a> and he also tweets prolifically as <a href="http://twitter.com/ryanbigg">@ryanbigg</a>.
+<% end %>
+
+<%= author('Oscar Del Ben', 'oscardelben', 'oscardelben.jpg') do %>
+Oscar Del Ben is a software engineer at <a href="http://www.wildfireapp.com/">Wildfire</a>. He's a regular open source contributor (<a href="https://github.com/oscardelben">Github account</a>) and tweets regularly at <a href="https://twitter.com/oscardelben">@oscardelben</a>.
+ <% end %>
+
+<%= author('Frederick Cheung', 'fcheung') do %>
+ Frederick Cheung is Chief Wizard at Texperts where he has been using Rails since 2006. He is based in Cambridge (UK) and when not consuming fine ales he blogs at <a href="http://www.spacevatican.org">spacevatican.org</a>.
+<% end %>
+
+<%= author('Tore Darell', 'toretore') do %>
+ Tore Darell is an independent developer based in Menton, France who specialises in cruft-free web applications using Ruby, Rails and unobtrusive JavaScript. His home on the internet is his blog <a href="http://tore.darell.no">Sneaky Abstractions</a>.
+<% end %>
+
+<%= author('Jeff Dean', 'zilkey') do %>
+ Jeff Dean is a software engineer with <a href="http://pivotallabs.com">Pivotal Labs</a>.
+<% end %>
+
+<%= author('Mike Gunderloy', 'mgunderloy') do %>
+ Mike Gunderloy is a consultant with <a href="http://www.actionrails.com">ActionRails</a>. He brings 25 years of experience in a variety of languages to bear on his current work with Rails. His near-daily links and other blogging can be found at <a href="http://afreshcup.com">A Fresh Cup</a> and he <a href="http://twitter.com/MikeG1">twitters</a> too much.
+<% end %>
+
+<%= author('Mikel Lindsaar', 'raasdnil') do %>
+ Mikel Lindsaar has been working with Rails since 2006 and is the author of the Ruby <a href="https://github.com/mikel/mail">Mail gem</a> and core contributor (he helped re-write Action Mailer's API). Mikel is the founder of <a href="http://rubyx.com/">RubyX</a>, has a <a href="http://lindsaar.net/">blog</a> and <a href="http://twitter.com/raasdnil">tweets</a>.
+<% end %>
+
+<%= author('Cássio Marques', 'cmarques') do %>
+ Cássio Marques is a Brazilian software developer working with different programming languages such as Ruby, JavaScript, CPP and Java, as an independent consultant. He blogs at <a href="http://cassiomarques.wordpress.com">/* CODIFICANDO */</a>, which is mainly written in Portuguese, but will soon get a new section for posts with English translation.
+<% end %>
+
+<%= author('James Miller', 'bensie') do %>
+ James Miller is a software developer for <a href="http://www.jk-tech.com">JK Tech</a> in San Diego, CA. You can find James on GitHub, Gmail, Twitter, and Freenode as &quot;bensie&quot;.
+<% end %>
+
+<%= author('Pratik Naik', 'lifo') do %>
+ Pratik Naik is a Ruby on Rails developer at <a href="http://www.37signals.com">37signals</a> and also a member of the <a href="http://rubyonrails.org/core">Rails core team</a>. He maintains a blog at <a href="http://m.onkey.org">has_many :bugs, :through =&gt; :rails</a> and has a semi-active <a href="http://twitter.com/lifo">twitter account</a>.
+<% end %>
+
+<%= author('Emilio Tagua', 'miloops') do %>
+ Emilio Tagua &mdash;a.k.a. miloops&mdash; is an Argentinian entrepreneur, developer, open source contributor and Rails evangelist. Cofounder of <a href="http://eventioz.com">Eventioz</a>. He has been using Rails since 2006 and contributing since early 2008. Can be found at gmail, twitter, freenode, everywhere as &quot;miloops&quot;.
+<% end %>
+
+<%= author('Heiko Webers', 'hawe') do %>
+ Heiko Webers is the founder of <a href="http://www.bauland42.de">bauland42</a>, a German web application security consulting and development company focused on Ruby on Rails. He blogs at the <a href="http://www.rorsecurity.info">Ruby on Rails Security Project</a>. After 10 years of desktop application development, Heiko has rarely looked back.
+<% end %>
diff --git a/guides/source/pt_br/documents.yaml b/guides/source/pt_br/documents.yaml
new file mode 100644
index 0000000000..c3acdd0742
--- /dev/null
+++ b/guides/source/pt_br/documents.yaml
@@ -0,0 +1,163 @@
+-
+ name: Comece aqui
+ documents:
+ -
+ name: Começando com Rails
+ url: getting_started.html
+ description: Tudo o que você precisa saber para instalar o Rails e criar a sua primeira aplicação.
+-
+ name: Models
+ documents:
+ -
+ name: Rails Migrações de Banco de Dados
+ url: migrations.html
+ description: Este guia explica como você pode usar as migrações do Active Record para alterar o banco de dados de forma estruturada e organizada.
+ -
+ name: Validações Active Record e Callbacks
+ url: active_record_validations_callbacks.html
+ description: Este guia explica como você pode usar as validações do Active Record e callbacks.
+ -
+ name: Associações Active Record
+ url: association_basics.html
+ description: Este guia cobre todas as associações fornecidos pelo Active Record.
+ -
+ name: nterface de consulta Active Record
+ url: active_record_querying.html
+ description: Este guia aborda a interface de consulta de banco de dados fornecido pelo Active Record.
+-
+ name: Views
+ documents:
+ -
+ name: Layouts e renderização em Rails
+ url: layouts_and_rendering.html
+ description: Este guia aborda as características básicas de layout de Action Controller e Action View, incluindo renderização e redirecionamento, usando blocos content_for, e trabalhando com parciais.
+ -
+ name: Action View Form Helpers
+ url: form_helpers.html
+ description: Guia para helpers forms usando built-in.
+-
+ name: Controllers
+ documents:
+ -
+ name: Visão Global Action Controller
+ url: action_controller_overview.html
+ description: Este guia explica como os controladores funcionam e como eles se encaixam no ciclo de solicitação em sua aplicação. Inclui sessões, filtros, e os cookies, dados streaming, e lidar com exceções levantadas por um pedido, entre outros temas.
+ -
+ name: Roteamento Rails de Fora para Dentro
+ url: routing.html
+ description: Este guia aborda o usuário virada recursos do Rails roteamento. Se você quer entender como usar roteamento em suas próprias aplicações Rails, comece aqui.
+-
+ name: Indo mais Fundo
+ documents:
+ -
+ name: Extensões do núcleo do Active Support
+ url: active_support_core_extensions.html
+ description: Este guia documenta as extensões principais do Ruby definidas no Active Support.
+ -
+ name: Internacionalização do Rails API
+ url: i18n.html
+ description: Este guia aborda como adicionar internacionalização para as suas aplicações. O aplicativo será capaz de traduzir o conteúdo para diferentes idiomas, alterar regras de pluralização, utilize formatos de data corretas para cada país e assim por diante.
+ -
+ name: Basico Action Mailer
+ url: action_mailer_basics.html
+ work_in_progress: true
+ description: Este guia descreve como usar Action Mailer para enviar e receber e-mails.
+ -
+ name: Testando Aplicações Rails
+ url: testing.html
+ work_in_progress: true
+ description: Este é um guia bastante completo para fazer tanto a unidade e testes funcionais no Rails. Ele cobre tudo, desde "O que é um teste?" para as APIs de testes. Aproveite.
+ -
+ name: Segurança de Aplicações Rails
+ url: security.html
+ description: Este guia descreve problemas comuns de segurança em aplicações web e como evitá-los com Rails.
+ -
+ name: Depuração de Aplicações Rails
+ url: debugging_rails_applications.html
+ description: Este guia descreve como depurar aplicações Rails. Ela abrange as diferentes maneiras de alcançar isso e como entender o que está acontecendo "por trás das cenas" de seu código.
+ -
+ name: Performance de Testes em Aplicações Rails
+ url: performance_testing.html
+ description: Este guia aborda as várias formas de teste de desempenho de um aplicativo Ruby on Rails.
+ -
+ name: Configurando Aplicações Rails
+ url: configuring.html
+ description: Este guia abrange as configurações básicas para uma aplicação Rails.
+ -
+ name: Ferramentas de Linhas de Comando do Rails e Rake Tasks
+ url: command_line.html
+ description: Este guia contém as ferramentas de linha de comando e tarefas Rake fornecidos pelo Rails.
+ -
+ name: Cache com Rails
+ work_in_progress: true
+ url: caching_with_rails.html
+ description: Várias técnicas de cache fornecidos pelo Rails.
+ -
+ name: Asset Pipeline
+ url: asset_pipeline.html
+ description: Este guia documenta o asset pipeline.
+ -
+ name: Começando com os Engines
+ url: engines.html
+ description: Este guia explica como escrever uma engine.
+ work_in_progress: true
+ -
+ name: O processo de inicialização Rails
+ work_in_progress: true
+ url: initialization.html
+ description: Este guia explica os internos do processo de inicialização do Rails como de Rails 3.1
+-
+ name: Estendendo Rails
+ documents:
+ -
+ name: Noções básicas de criação de plugins Rails
+ work_in_progress: true
+ url: plugins.html
+ description: Este guia aborda como construir um plugin para estender a funcionalidade do Rails.
+ -
+ name: Rails no rack
+ url: rails_on_rack.html
+ description: Este guia cobre a integração do Rails com rack e interface com componentes de suporte de outros.
+ -
+ name: Criando e personalizando Geradores Rails
+ url: generators.html
+ description: Este guia aborda o processo de adição de um gerador de novo para o seu ramal ou fornecer uma alternativa para um elemento de um gerador de Rails (como o fornecimento de talões de ensaio alternativos para o gerador de andaime).
+-
+ name: Contribuindo para Ruby on Rails
+ documents:
+ -
+ name: Contribuindo para Ruby on Rails
+ url: contributing_to_ruby_on_rails.html
+ description: Rails não é "alguém do quadro." Este guia aborda uma variedade de maneiras que você pode se envolver no desenvolvimento contínuo do Rails.
+ -
+ name: Documentação Diretrizes API
+ url: api_documentation_guidelines.html
+ description: Este guia documenta o Ruby on Rails diretrizes documentação da API.
+ -
+ name: Guias de Diretrizes Ruby on Rails
+ url: ruby_on_rails_guides_guidelines.html
+ description: Este guia documenta os guias de diretrizes do Ruby on Rails.
+-
+ name: Notas de Release
+ documents:
+ -
+ name: Atualizando o Ruby on Rails
+ url: upgrading_ruby_on_rails.html
+ work_in_progress: true
+ description: Este guia de ajuda na atualização de aplicativos para versões mais recentes do Ruby on Rails.
+ -
+ name: Nota de Release do Ruby on Rails 4.0
+ url: 4_0_release_notes.html
+ description: Notas do Release do Rails 4.0.
+ -
+ name: Nota de Release do Ruby on Rails 3.2
+ url: 3_2_release_notes.html
+ description: Notas do Release do Rails 3.2.
+ -
+ name: Notas de Release do Ruby on Rails 3.1
+ url: 3_1_release_notes.html
+ description: Notas do Release do Rails 3.1.
+ -
+ name: Notas de Release do Ruby on Rails 3.0
+ url: 3_0_release_notes.html
+ description: Notas do Release do Rails 3.0.
diff --git a/guides/source/pt_br/index.html.erb b/guides/source/pt_br/index.html.erb
new file mode 100644
index 0000000000..2af97087fe
--- /dev/null
+++ b/guides/source/pt_br/index.html.erb
@@ -0,0 +1,30 @@
+<% content_for :page_title do %>
+Ruby on Rails Guides
+<% end %>
+
+<% content_for :header_section do %>
+<%= render 'welcome' %>
+<% end %>
+
+<% content_for :index_section do %>
+<div id="subCol">
+ <dl>
+ <dd class="kindle">Guias Rails também estão disponíveis para o <%= link_to 'Kindle', 'https://kindle.amazon.com' %>
+e <%= link_to 'Free Kindle Reading Apps', 'http://www.amazon.com/gp/kindle/kcp' %> para o iPad,
+iPhone, Mac, Android, etc. Download <%= link_to 'aqui', @mobi %>.
+ </dd>
+ <dd class="work-in-progress">Guias marcados com este ícone estão sendo trabalhadas e não estará disponível no menu Índice de Guias. Embora ainda úteis, eles podem conter informações incompletas e até mesmo erros. Você pode ajudar a revê-los e postar seus comentários e correções.</dd>
+ </dl>
+</div>
+<% end %>
+
+<% documents_by_section.each do |section| %>
+ <h3><%= section['name'] %></h3>
+ <dl>
+ <% section['documents'].each do |document| %>
+ <%= guide(document['name'], document['url'], :work_in_progress => document['work_in_progress']) do %>
+ <p><%= document['description'] %></p>
+ <% end %>
+ <% end %>
+ </dl>
+<% end %>
diff --git a/guides/source/pt_br/layout.html.erb b/guides/source/pt_br/layout.html.erb
new file mode 100644
index 0000000000..6415bec51b
--- /dev/null
+++ b/guides/source/pt_br/layout.html.erb
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<title><%= yield(:page_title) || 'Ruby on Rails Guides' %></title>
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css" />
+<link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print" />
+
+<link rel="stylesheet" type="text/css" href="stylesheets/syntaxhighlighter/shCore.css" />
+<link rel="stylesheet" type="text/css" href="stylesheets/syntaxhighlighter/shThemeRailsGuides.css" />
+
+<link rel="stylesheet" type="text/css" href="stylesheets/fixes.css" />
+
+<link href="images/favicon.ico" rel="shortcut icon" type="image/x-icon" />
+</head>
+<body class="guide">
+ <% if @edge %>
+ <div>
+ <img src="images/edge_badge.png" alt="edge-badge" id="edge-badge" />
+ </div>
+ <% end %>
+ <div id="topNav">
+ <div class="wrapper">
+ <strong class="more-info-label">More at <a href="http://rubyonrails.org/">rubyonrails.org:</a> </strong>
+ <span class="red-button more-info-button">
+ More Ruby on Rails
+ </span>
+ <ul class="more-info-links s-hidden">
+ <li class="more-info"><a href="http://rubyonrails.org/">Overview</a></li>
+ <li class="more-info"><a href="http://rubyonrails.org/download">Download</a></li>
+ <li class="more-info"><a href="http://rubyonrails.org/deploy">Deploy</a></li>
+ <li class="more-info"><a href="https://github.com/rails/rails">Code</a></li>
+ <li class="more-info"><a href="http://rubyonrails.org/screencasts">Screencasts</a></li>
+ <li class="more-info"><a href="http://rubyonrails.org/documentation">Documentation</a></li>
+ <li class="more-info"><a href="http://rubyonrails.org/ecosystem">Ecosystem</a></li>
+ <li class="more-info"><a href="http://rubyonrails.org/community">Community</a></li>
+ <li class="more-info"><a href="http://weblog.rubyonrails.org/">Blog</a></li>
+ </ul>
+ </div>
+ </div>
+ <div id="header">
+ <div class="wrapper clearfix">
+ <h1><a href="index.html" title="Return to home page">Guides.rubyonrails.org</a></h1>
+ <ul class="nav">
+ <li><a class="nav-item" href="index.html">Home</a></li>
+ <li class="guides-index guides-index-large">
+ <a href="index.html" onclick="guideMenu(); return false;" id="guidesMenu" class="guides-index-item nav-item">Guides Index</a>
+ <div id="guides" class="clearfix" style="display: none;">
+ <hr />
+ <% ['L', 'R'].each do |position| %>
+ <dl class="<%= position %>">
+ <% docs_for_menu(position).each do |section| %>
+ <dt><%= section['name'] %></dt>
+ <% finished_documents(section['documents']).each do |document| %>
+ <dd><a href="<%= document['url'] %>"><%= document['name'] %></a></dd>
+ <% end %>
+ <% end %>
+ </dl>
+ <% end %>
+ </div>
+ </li>
+ <li><a class="nav-item" href="contributing_to_ruby_on_rails.html">Contribute</a></li>
+ <li><a class="nav-item" href="credits.html">Credits</a></li>
+ <li class="guides-index guides-index-small">
+ <select class="guides-index-item nav-item">
+ <option value="index.html">Guides Index</option>
+ <% docs_for_menu.each do |section| %>
+ <optgroup label="<%= section['name'] %>">
+ <% finished_documents(section['documents']).each do |document| %>
+ <option value="<%= document['url'] %>"><%= document['name'] %></option>
+ <% end %>
+ </optgroup>
+ <% end %>
+ </select>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <hr class="hide" />
+
+ <div id="feature">
+ <div class="wrapper">
+ <%= yield :header_section %>
+
+ <%= yield :index_section %>
+ </div>
+ </div>
+
+ <div id="container">
+ <div class="wrapper">
+ <div id="mainCol">
+ <%= yield.html_safe %>
+
+ <h3>Feedback</h3>
+ <p>
+ Você é encorajado a ajudar a melhorar a qualidade deste guia.
+ </p>
+ <p>
+ Se você ver erros de digitação ou erros de fato que está confiante para
+ patch, por favor clone <%= link_to 'docrails', 'https://github.com/lifo/docrails' %>
+ e após a alteração faça um push. Esse branch do Rails tem acesso de gravação.
+ ainda são revistos, mas o que acontece depois que você enviar a sua
+ contribuição. <%= link_to 'docrails', 'https://github.com/lifo/docrails' %> tem
+ merged com o mestre periodicamente.
+ </p>
+ <p>
+ Você também pode encontrar conteúdo incompleto, ou coisas que não está atualizado.
+ Por favor, adicionar qualquer documentação que faltava para mestre. verifique o
+ <%= link_to 'Ruby on Rails Guides Guidelines', 'ruby_on_rails_guides_guidelines.html' %>
+ para o estilo e convenções.
+ </p>
+ <p>
+ Se por qualquer motivo você encontrar alguma coisa para consertar, mas não pode corrigi-lo a si mesmo, por favor abra um
+ <%= link_to 'open an issue', 'https://github.com/rails/rails/issues' %>.
+ </p>
+ <p>E por último, mas não menos importante, qualquer tipo de discussão sobre Ruby on Rails
+ documentação é muito bem-vindo no <%= link_to 'rubyonrails-docs mailing list', 'http://groups.google.com/group/rubyonrails-docs' %>.
+ </p>
+ </div>
+ </div>
+ </div>
+
+ <hr class="hide" />
+ <div id="footer">
+ <div class="wrapper">
+ <%= render 'license' %>
+ </div>
+ </div>
+
+ <script type="text/javascript" src="javascripts/jquery.min.js"></script>
+ <script type="text/javascript" src="javascripts/responsive-tables.js"></script>
+ <script type="text/javascript" src="javascripts/guides.js"></script>
+ <script type="text/javascript" src="javascripts/syntaxhighlighter/shCore.js"></script>
+ <script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushRuby.js"></script>
+ <script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushXml.js"></script>
+ <script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushSql.js"></script>
+ <script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushPlain.js"></script>
+ <script type="text/javascript">
+ SyntaxHighlighter.all()
+ $(guidesIndex.bind);
+ </script>
+</body>
+</html>