Criando uma aplicação Rails (parte 1)

Vamos criar uma aplicação Rails passo a passo, começando pelo comando rails new

Criando uma app Rails

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á!

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 Tutorials vamos criar uma aplicação para controle de tarefas chamada Done! Então o comando para criar a app será:

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. 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

2 Comentários

AlanPereiraCodes

AlanPereiraCodes há quase 2 anos

Essa publicação é bem similar a esta: https://codesaga.com.br/tutorials/instalando-rails o.o


magalls

magalls há quase 3 anos

Olá,

Como resolvo esse erro:

rails new --help /usr/local/bin/rails:23:in load': cannot load such file -- /usr/share/rubygems-integration/all/gems/railties-4.2.6/bin/rails (LoadError) from /usr/local/bin/rails:23:in

'


magalls

magalls há quase 3 anos

Ja consegui fazer funcionar colocando rails 5.0.0.1