【Rails】アプリケーション作成手順
$ mkdir app-name && cd $_
$ rbenv local 2.7.2 $ ls -a . .. .ruby-version $ ruby -v ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
$ gem search ^rails$ -l *** LOCAL GEMS *** (※何もなかった)
$ gem i -v 6.0.3.4 rails
$ gem search ^rails$ -l *** LOCAL GEMS *** rails (6.0.3.4)
$ rails -v Rails 6.0.3.4
$ rails _6.0.3.4_ new -d postgresql -T --skip-sprockets .
$ git add . $ git commit -m 'first commit' $ git branch -M main $ git remote add origin https://github.com/USERNAME/app-name.git $ git push -u origin main
MySQLを使用する場合は以下のように。
$ rails _6.0.3.4_ new -d mysql -T --skip-sprockets .
【Rails】RSpecとfactory_botを導入する
factory_botを用いたモデルスペックが実行できるところまで準備します。
gem
group :development, :test do gem 'rspec-rails' gem 'factory_bot_rails' end group :development do gem 'spring-commands-rspec' # RSpecを高速化するための記述 end
$ bundle install
インストールする
$ rails generate rspec:install
.rspec
に追記する
--require spec_helper --format documentation # この行を追記
RSpecを高速化する
$ bundle exec spring binstub rspec
spec/rails_helper.rb
を編集する
# コメントアウトを解除して、spec/support/ 以下の全てのファイルが自動的に読み込まれるようにする Dir[Rails.root.join('spec', 'support', '**', '*.rb')].sort.each { |f| require f } RSpec.configure do |config| # FactoryBotの名前空間を省略できるようにする config.include FactoryBot::Syntax::Methods end
参考
【Rails】Hamlを導入する
gem
gem 'hamlit-rails'
$ bundle install
既存ファイルをHamlで書き直す
app/views/layouts/application.html.haml
headタグの中身は自分なりにカスタマイズしています。
!!! %html %head %title = content_for?(:head_title) ? yield(:head_title) : 'AppName' = csrf_meta_tags = csp_meta_tag %meta{charset: 'utf-8'}/ %meta{'http-equiv': 'X-UA-Compatible', content: 'IE=edge'}/ %meta{name: 'viewport', content: 'width=device-width, initial-scale=1'}/ %meta{'http-equiv': 'content-language', content: 'ja'}/ /[if lt IE 9] %script{src: 'https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js'} %script{src: 'https://oss.maxcdn.com/respond/1.4.2/respond.min.js'} = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' = javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %body = yield
カスタマイズしてない版
!!! %html %head %title AppName = csrf_meta_tags = csp_meta_tag = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' = javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %body = yield
app/views/layouts/mailer.html.haml
!!! %html %head %meta{:content => "text/html; charset=utf-8", "http-equiv" => "Content-Type"}/ :css /* Email styles need to be inline */ %body = yield
app/views/layouts/mailer.text.haml
= yield
【Rails】ジェネレータをカスタマイズする
module AppName class Application < Rails::Application ...中略... config.generators do |g| g.assets false g.helper false g.jbuilder false g.test_framework :rspec, # テストデータベースにレコードを作成するファイルの作成をスキップ fixtures: false, # ビュースペックの作成をスキップ(UIのテストはフィーチャスペックに任せる) view_specs: false, # ヘルパースペックの作成をスキップ helper_specs: false, # ルーティングスペックの作成をスキップ routing_specs: false, # コントローラースペックの作成をスキップ controller_specs: false, # リクエストスペックの作成をスキップ request_specs: false end end end
【Rails】最序盤タスクまとめ
前提
以下の記事の通りに、アプリケーション作成 => git pushまで済んでいること。
書き出してみる
.gitignoreを書く
※~/.gitconfigと~/.gitignoreの設定を済ませたので、最近はもうやってません。
.idea
DB作成
$ rails db:create
Gemfileのコメントを削除する
コメントアウトされているgemの記述は一応残しています。
可読性が担保されればいいかなということで。
Sassを導入する
application.css => application.scssにリネームするだけです。
※Sassじゃなくてもいいかなと思い、最近はもうやってません。
reset.cssを導入する
以下のreset.cssを使っています。
タイムゾーン、ロケールを設定する
ジェネレータをカスタマイズする
Hamlを導入する
RSpecを導入する
一旦はfactory_botを用いたモデルスペックが実行できるところまで
Simple Formを導入する
.rubocop.ymlを作成する
【RubyMine】ショートカットまとめ
随時更新します。
RubyMine ショートカット
⌘ + 9 : VCSパネルを開く
⌘ + Shift + O : ファイルを検索する
⌘ + K : コミットする
⌥ + F12 : ターミナルを開く