Instalando Rails

Veja como instalar o framework Rails e conheça seus primeiros comandos

Provavelmente Rails foi um dos nomes que trouxe você até o Code Saga. E não é para menos, estamos falando do framework web mais badalado dos últimos anos. Com Ruby on Rails os programadores são capazes de criar aplicações completas escrevendo muito menos código do que em outras linguagens e frameworks.

Para conseguir isso existem dois princípios que são seguidos a risca no ambiente Rails:

Don't Repeat Yourself (DRY): evitar a repetição de configurações e código temos menos fontes de bugs e nosso código se torna mais fácil de se manter e extender. Convention over Configuration: Ao invés de exigir que você configure cada detalhe da sua aplicação, Rails oferece uma forma padrão para criação de vários componentes. Quanto mais você seguir esse padrão, menos arquivos de configuração precisarão ser criados.

Bom, tudo isso você já deve ter visto em vários sites ou livros e nosso objetivo aqui é oferecer algo simples e direto ao ponto. Então vamos lá!

Instalando Rails

Se você está aqui espero que já tenha passado pelos textos de Ruby e já tem a linguagem instalada na sua máquina.

A linguagem Ruby possui desde suas primeiras versões um formato de compartilhar programas e bibliotecas chamado Ruby Gems (http://en.wikipedia.org/wiki/RubyGems). Teste em seu terminal o comando abaixo:

gem list

Você verá a lista de todas as gems instaladas. Caso sua instalação de Ruby seja recente você deve ver algo parecido com isso:

$ gem list

*** LOCAL GEMS ***

bigdecimal (1.2.4)
io-console (0.4.3)
json (1.8.1)
minitest (4.7.5)
psych (2.0.5)
rake (10.1.0)
rdoc (4.1.0)
test-unit (2.1.6.0)

Rails nada mais é que mais uma gem e sua instalação deve ser feita com o comando gem install rails. Mas vamos remover a documentação que é instalada por padrão com o argumento --no-document:

gem install rails --no-document

Este comando não especifica a versão que deve ser instalada, então o RubyGems instala a última versão declarada estável pelo time mantenedor do projeto.

Para conferir se sua instalação teve sucesso, execute:

rails -v

A versão instalada deve ser exibida em seu terminal.

$ rails --version
Rails 4.2.1

Primeira aplicação Rails

Estamos prontos para criar nossa primeira aplicação. Então mãos a obra!

Primeiro, navegue até sua workspace.

cd ~/workspace

Agora vamos executar o comando rails new que cria uma nova aplicação. Antes disso, vamos avaliar algumas opções deste comando executando rails new --help.

$ rails new --help
Usage:
  rails new APP_PATH [options]

Options:
  -r, [--ruby=PATH]                                      # Path to the Ruby binary of your choice
                                                         # Default: /home/joao/.rbenv/versions/2.1.6/bin/ruby
  -m, [--template=TEMPLATE]                              # Path to some application template (can be a filesystem path or URL)
      [--skip-gemfile], [--no-skip-gemfile]              # Don't create a Gemfile
  -B, [--skip-bundle], [--no-skip-bundle]                # Don't run bundle install
  -G, [--skip-git], [--no-skip-git]                      # Skip .gitignore file
      [--skip-keeps], [--no-skip-keeps]                  # Skip source control .keep files
  -O, [--skip-active-record], [--no-skip-active-record]  # Skip Active Record files
  -S, [--skip-sprockets], [--no-skip-sprockets]          # Skip Sprockets files
      [--skip-spring], [--no-skip-spring]                # Don't install Spring application preloader
  -d, [--database=DATABASE]                              # Preconfigure for selected database (options: mysql/oracle/postgresql/sqlite3/frontbase/ibm_db/sqlserver/jdbcmysql/jdbcsqlite3/jdbcpostgresql/jdbc)
                                                         # Default: sqlite3
  -j, [--javascript=JAVASCRIPT]                          # Preconfigure for selected JavaScript library
                                                         # Default: jquery
  -J, [--skip-javascript], [--no-skip-javascript]        # Skip JavaScript files
      [--dev], [--no-dev]                                # Setup the application with Gemfile pointing to your Rails checkout
      [--edge], [--no-edge]                              # Setup the application with Gemfile pointing to Rails repository
      [--skip-turbolinks], [--no-skip-turbolinks]        # Skip turbolinks gem
  -T, [--skip-test-unit], [--no-skip-test-unit]          # Skip Test::Unit files
      [--rc=RC]                                          # Path to file containing extra configuration options for rails command
      [--no-rc], [--no-no-rc]                            # Skip loading of extra configuration options from .railsrc file

Runtime options:
  -f, [--force]                    # Overwrite files that already exist
  -p, [--pretend], [--no-pretend]  # Run but do not make any changes
  -q, [--quiet], [--no-quiet]      # Suppress status output
  -s, [--skip], [--no-skip]        # Skip files that already exist

Rails options:
  -h, [--help], [--no-help]        # Show this help message and quit
  -v, [--version], [--no-version]  # Show Rails version number and quit

Description:
    The 'rails new' command creates a new Rails application with a default
    directory structure and configuration at the path you specify.

    You can specify extra command-line arguments to be used every time
    'rails new' runs in the .railsrc configuration file in your home directory.

    Note that the arguments specified in the .railsrc file don't affect the
    defaults values shown above in this help message.

Example:
    rails new ~/Code/Ruby/weblog

    This generates a skeletal Rails installation in ~/Code/Ruby/weblog.
    See the README in the newly created application to get going.

Temos muitas opções! Mas vamos focar agora na seção Usage logo no começo do que foi exibido: rails new APP_PATH. Ou seja, o mínimo que o comando precisa para ser executado é o caminho onde deve ser criada a nova aplicação.

Nessa série de Magic Resources vamos criar uma aplicação para controle de tarefas chamada Done!

rails new done

Wow! Muita mágica aconteceu! Olhando rapidamente podemos ver várias pastas e arquivos sendo criados e várias Gems sendo instaladas. Mais pra frente vamos conhecer mais detalhes desse processo, por enquanto nosso objetivo é rodar nossa primeira aplicação e estamos bem pertos disso \o/

Vamos navegar até nossa aplicação?

cd done
ls -la

Certo! Aqui estão todos os arquivos e diretórios criados. Para rodar nossa aplicação vamos iniciar o servidor web que acompanha toda aplicação Rails.

rails server

Se tudo correu bem você deverá ver algo como rails 4.2.0 application starting in development on http://localhost:3000.

Mas, caso essa seja a primeira vez que você instala e cria uma aplicação com Rails 4, provavelmente terá um problema para resolver.

$ rails server
/home/joao/.rbenv/versions/2.1.6/lib/ruby/gems/2.1.0/gems/execjs-2.5.2/lib/execjs/runtimes.rb:48:in `autodetect': Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.

As versões mais recentes do Rails exigem uma runtime para compilar código JavaScript. Mas vai resolver isso é mais fácil do que parece.

Nossa aplicação possui um arquivo onde todas as Gems necessárias para execução são declaradas. Esse arquivo é o Gemfile. Vamos dar uma olhada nele.

source 'https://rubygems.org'


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.1'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc

# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use Unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug'

  # Access an IRB console on exception pages or by using <%= console %> in views
  gem 'web-console', '~> 2.0'

  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
end

Existe uma linha declarando a gem therubyracer e é ela que vamos usar para resolver o problema. Esta linha está comentada com um # no começo. Remova esse #, salve o arquivo e volte para o terminal.

Execute o comando que vai ler o Gemfile e atualizar as gems para a nossa aplicação.

bundle install

Com a gem instalada vamos executar novamente:

rails server

Vamos abrir nosso browser e acessar localhost:3000.

Hello

Pronto! Missão cumprida! Vamos para a próxima!

Faça login para comentar.

Entrar

7 Comentários

Roberto Rodrigues

Roberto Rodrigues há 4 meses

ERROR: Error installing rails: rack requires Ruby version >= 2.2.2.

alguem me ajudar please


Andris Buscariolli

Andris Buscariolli há mais de 1 ano

bash: https://rubygems.org: No such file or directory

alguém sabe qual o problema?


AlanPereiraCodes

AlanPereiraCodes há mais de 1 ano

Opa, não entendi o que você quis tentar executar com o comando que deu erro. Mas pelo tutorial, a única parte em que essa URL é citada é apenas sobre uma modificação a ser feita em um arquivo do projeto. Na pasta do projeto, no caso o done procure pelo arquivo Gemfile, abra ele com o gedit ou outro editor de texto. Só retirar o # na parte do:

gem 'therubyracer', platforms: :ruby

Salve o arquivo e continue a seguir os passos do tutorial.


AlanPereiraCodes

AlanPereiraCodes há mais de 1 ano

"Yay! You're on Rails." :D


christianPaladino10

christianPaladino10 há mais de 2 anos

Fetching: nokogiri-1.6.8.1.gem (100%) Building native extensions. This could take a while... ERROR: Error installing rails: ERROR: Failed to build gem native extension.

current directory: /var/lib/gems/2.3.0/gems/nokogiri-1.6.8.1/ext/nokogiri

/usr/bin/ruby2.3 -r ./siteconf20161031-2787-1xdowow.rb extconf.rb mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /var/lib/gems/2.3.0/gems/nokogiri-1.6.8.1 for inspection. Results logged to /var/lib/gems/2.3.0/extensions/x86-linux/2.3.0/nokogiri-1.6.8.1/gem_make.out

escrevi o comando gem install rails --no-document como ensinado, ele chegou a instalar algumas coisas mas depois apareceu esse erro....

alguma dica?


Wendelog

Wendelog há mais de 2 anos

Estava com o mesmo problema.

Segue esse video: https://www.youtube.com/watch?v=hiPQynmnsiI

Abraço,


christianPaladino10

christianPaladino10 há mais de 2 anos

Obg


PeeweeEbony

PeeweeEbony há mais de 3 anos

tinha esquecido essa parte. kkk


Alan Rafael R. Batista

Alan Rafael R. Batista há quase 4 anos

No challenge Primeiros Passos ao caminho do Ruby - http://codesaga.com.br/challenges/4 você precisou do Ruby para completá-lo. No Magic Resource http://codesaga.com.br/tutorials/10 você vai encontrar links para ajudá-lo a configurar o ambiente. No neste link tem um tutorial para instalar o Ruby no windows http://campuscode.com.br/blog/2014/10/instalando-ruby-e-rails-no-windows/ Se precisar de mais ajuda, não deixe de nos procurar ;)


albertojuniorhc

albertojuniorhc há quase 4 anos

"Se você está aqui espero que já tenha passado pelos textos de Ruby e já tem a linguagem instalada na sua máquina." Existem textos explicativos por aqui? Obrigado!