blue workbench

Ruby and Rails

【Rails】System Specをはじめる

group :test do gem 'capybara' gem 'selenium-webdriver' gem 'webdrivers' end $ bundle install

【Rails】Simple Formの使い方まとめ

config/initializers/simple_form.rb # 必須フィールドのマークを消す config.label_text = ->(label, required, explicit_label) { label.to_s } # 必須フィールドのマークを消す config.required_by_default = false

【Rails】seeds.rbを書く

前提 app/models/product.rb # frozen_string_literal: true class Product < ApplicationRecord has_one :stock end app/models/stock.rb # frozen_string_literal: true class Stock < ApplicationRecord belongs_to :product end 書く db/seeds.rb # froz…

【Rails】deviseチートシート

= link_to 'ユーザー登録', new_user_registration_path = link_to 'ログアウト', destroy_user_session_path, method: :delete

【Rails】deviseのvalidatableを理解する

validatableモジュールのソースコード devise/models/validatable.rb # frozen_string_literal: true module Devise module Models # Validatable creates all needed validations for a user email and password. # It's optional, given you may want to c…

【Rails】deviseでemail, password以外のサインアップパラメータを追加する

やりたいこと サインアップするためのパラメータに、email, password以外に screen_name というパラメータを追加したい。 前提 以下の手順を完了していること。 (DBのカラムは以下手順で追加済みです) now-on-air.hatenablog.com 手順 $ rails g devise:view…

【Rails】Letter Openerを導入する

gem 'letter_opener' $ bundle install config/environments/development.rb config.action_mailer.delivery_method = :letter_opener

【Rails】deviseを導入する

必ずやる手順 gem 'devise' $ bundle install $ rails generate devise:install Running via Spring preloader in process 74332 create config/initializers/devise.rb create config/locales/devise.en.yml =============================================…

【Rails】マイグレーションまとめ

テーブル作成 # frozen_string_literal: true class CreateProducts < ActiveRecord::Migration[6.0] def change create_table :products do |t| # NOT NULL制約 t.string :name, null: false t.integer :price, null: false t.timestamps end end end 複数…

【Rails】バリデーションまとめ

# frozen_string_literal: true class User < ApplicationRecord validates :screen_name, # 必須 presence: true, # 長さ length: { maximum: 20 }, # 一意制約(大文字小文字区別しない) uniqueness: { case_sensitive: false } end # frozen_string_litera…

【RuboCop】.rubocop.ymlどうする

これから適宜追記していきます。 AllCops: Exclude: - 'db/schema.rb' Documentation: Enabled: false

何を知っているか、知っていたかの記録(Ruby,Railsメイン)

# frozen_string_literal: true blog.toshimaru.net blog.oliva.co.jp

【RubyMine】設定のカスタマイズまとめ

適宜追記していきます。 保存系 カーソルが外れると自動保存されること(確かデフォルトでそうだったはず) 一定時間経過で自動保存されること(秒数も指定できるので、1secにしてる) 保存時にファイル末尾が改行されること 保存時に行末の空白が除去されること…

【Rails】railsコマンドまとめ

適宜更新です。 rails db:xxxxx root@1f4605d9b6ff:/workspace# rails db:drop Dropped database 'rails_docker_development' Dropped database 'rails_docker_test' root@1f4605d9b6ff:/workspace# rails db:create Created database 'rails_docker_develop…

【PostgreSQL】PostgreSQLコマンドまとめ

DBを作成する $ createdb twitter_copy_test

【PostgreSQL】pgcliを導入する

インストールする $ brew install pgcli 軽く触ってみる twitter_copy_development というDBがある前提。 $ pgcli twitter_copy_development Server: PostgreSQL 12.2 Version: 3.0.0 Chat: https://gitter.im/dbcli/pgcli Home: http://pgcli.com twitter_c…

【Ruby】ローカルPCのRubyバージョンを最新化する

公式サイトで最新バージョンを確認する https://www.ruby-lang.org/ja/downloads/ にアクセスして、最新バージョンを確認します。 現バージョンを確認する $ ruby -v ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin17] rbenv、ruby-build を…

【Rails】RailsアプリケーションのRubyバージョンを上げる

1. ローカルPCのRubyバージョンを上げる now-on-air.hatenablog.com 2. アプリケーションの .ruby-version を更新する $ cd プロジェクトルート $ ruby -v ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17] $ rbenv local 2.7.1 $ ruby -v ruby…

【Rails】deviseのルーティングをカスタマイズする

ノーマル Rails.application.routes.draw do devise_for :users end $ rails routes Prefix Verb URI Pattern Controller#Action new_user_session GET /users/sign_in(.:format) devise/sessions#new user_session POST /users/sign_in(.:format) devise/se…

【Rails】Simple Formを導入する

導入まで Gemfile gem 'simple_form' $ bundle install $ rails g simple_form:install Running via Spring preloader in process 2486 SimpleForm 3 supports Bootstrap and Zurb Foundation 5. If you want a configuration that is compatible with one o…

【Rails】タイムゾーン、ロケールを設定する

config/application.rb config.time_zone = 'Tokyo' config.active_record.default_timezone = :local config.i18n.default_locale = :ja Gemfile group :development do gem 'i18n_generators' end $ bundle install $ rails g i18n_locale ja Running via …

【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 …

【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…

【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) : 'AppN…

【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: fa…

【Rails】最序盤タスクまとめ

前提 以下の記事の通りに、アプリケーション作成 => git pushまで済んでいること。 now-on-air.hatenablog.com 書き出してみる .gitignoreを書く ※~/.gitconfigと~/.gitignoreの設定を済ませたので、最近はもうやってません。 .idea DB作成 $ rails db:creat…

【RubyMine】ショートカットまとめ

随時更新します。 RubyMine ショートカット ⌘ + 9 : VCSパネルを開く ⌘ + Shift + O : ファイルを検索する ⌘ + K : コミットする ⌥ + F12 : ターミナルを開く