fv17の日記 - Coding Every Day

Webエンジニアの備忘用ブログです。主にWeb界隈の技術に関して書いています。

Rails

Rails - Guardを使い、ファイル変更時にMinitestやRspecを自動実行する

やりたいこと ファイル更新時にテストを自動で行う 例えば、home.html.erbファイルが変更されたらstatic_pages_controller_test.rbを自動的に実行する Gemfileの設定 次の2行を追加 group :test do gem 'guard', '2.13.0' gem 'guard-minitest', '2.4.4' end…

Rails - 生成したコントローラやモデル、および実行したマイグレーションを元に戻す方法

コントローラ # 作成 rails generate controller StaticPages action1 action2 # 削除 reils destory controller StaticPages action1 action2 モデル # 作成 rails generate model User name:string email:string # 削除 rails destroy model User # モデル…

bundle install時に"An error occurred while installing mysql2 (0.4.9), and Bundler cannot continue."でコケる場合の対処法

エラー発生手順 MySQLをインストール brew install mysql@5.7 brew tap homebrew/services brew services start mysql@5.7 アプリケーションのディレクトリでbundle install git clone <クローン対象のURL> cd <対象ディレクトリ> bundle install 発生したエ…

Rails - 3000以外の別ポートで起動する

pオプションを付ける rails s -p <ポート番号>具体例 rails s -p 3001 利用例 複数バージョン立ち上げ時に、すでにポート3000使われてるエラーを回避。 Address already in use - bind(2) for "0.0.0.0" port 3000 (Errno::EADDRINUSE)

Rails - フレンドリーフォワーディング

はじめに 詳細は、Rails tutorial 第10章の「フレンドリーフォワーディング」を参照。 https://railstutorial.jp/chapters/updating_and_deleting_users?version=5.1#sec-friendly_forwardingTutorialですぐに理解できなかったので復習用としてまとめてみま…

Rails - formからpostする時にurlを指定する

はじめに ルーティングをresourcesではなく、直接指定したい場合の方法。 方法 urlを直接指定する場合 route.rb post '/signup', to: 'users#create' form form_forの引数にurlオプションを付ける <%= form_for(@user, url: signup_path) do |f| %> <%= f.la…

Rails - セキュアなパスワードの追加

1.modelにhas_secure_passwordを追加 class User < ApplicationRecord . . has_secure_password end 2.modelにpassword_digestという属性を追加 マイグレーションファイルの作成 rails g migration add_password_digest_to_users password_digest:string マ…

Rails - modelのvalidatation

参考 Active Record の基礎 | Rails ガイド Active Record バリデーション | Rails ガイド presence / 存在性 validates :email, presence: true length / 長さ validates :name, length: { minimum: 5 } validates :email, length: { maximum: 255 } valida…

Rails - データベースにカラムを追加する

マイグレーションの作成 rails g migration add_<column_name>_to_<table name> <column name>:<型>例えば、 rails g migration add_favorite_subject_to_users favorite_subject:string マイグレーションの定義 class AddFavoriteSubjectToUsers < ActiveRecord::Migration[5.0] def change add_co</column></table></column_name>…

Rails - データベースのカラムにindexを追加する

マイグレーションの作成 rails generate migration add_index_to_<table name>_<column name>例えば、 rails generate migration add_index_to_users_email マイグレーションの定義 一意制約を付与したい場合はuniqueオプションを追加する class AddIndexToUsersEmail < ActiveRecord:</column></table>…

Rails - modelまわりのメソッド一覧(CRUD)

Create / 生成 new 機能:モデルオブジェクトの作成。データベースには保存はしない user = User.new属性値の指定もできる user = User.new(name: "Foo Bar", email: "foo@bar.com") save 機能:生成したモデルオブジェクトをデータベースに保存 返り値:保…

Rails - モデルの作成

rails generate model YourModelName column1_name:<型> column2_name:<型>例えば、 rails generate model User name:string email:string

Rails - パーシャルによる切り出し

やり方 切り出したい部分を に書き換え app/views/layouts以下に _xxxxx.html.erb を追加 (「_」アンダーバー忘れずに) 以下、app/views/layouts/application.html.erbのheaderタグをパーシャルで切り出す具体例 パーシャルで切り出す前 app/views/layouts/a…

【Rails】_path書式と_url書式の使い分け

基本:_path書式 リダイレクト:_url書式

RubyとRails関連のドキュメント一覧

Ruby るりまサーチhttps://docs.ruby-lang.org/ja/search/ Rails APIドキュメントhttps://api.rubyonrails.org/

minitestでテスト結果をRED、GREENのBARで表示する

minitest-reporters gemを導入する。 記述方法はRails tutorialの「3.6.1 minitest reporters」を参照 https://railstutorial.jp/chapters/static_pages?version=5.1#sec-minitest_reporters

Rails - コントローラの作成

rails generate controller YourContrllerName yourAction1 yourAction2なお、削除は rails destroy controller YourContrllerName yourAction1 yourAction2 Tips Railsの慣習で、コントローラ名には複数形を使い、モデル名には単数形を用いる

bundle install と bundle update の違い

まず簡潔に bundle install Gemfile.lockを元にgemをinstall。 Gemfile.lockが存在しない場合、Gemfileを元にgemをinstallした後、Gemfile.lockを作成。 bundle update Gemfile.lockを無視し、Gemfileを元にgemをinstallする。 まずはGemfileとGemfile.lock…

Rails - 画面毎にtitleタグの中身を変更する

view側の実装 <% provide(:title, "your title name") %>app/views/layouts/application.html.erbの実装 <head> <title><%= yield(:title) %></title> </head>

Rails - アプリの新規作成からherokuへのデプロイまでのコマンド一覧

railsアプリケーション作成 rails _5.x.x_ new sample_app bundle install --without production bundle update コミット git init git add -A git commit -m 'xxxxxxxxxx' bitbucketにリポジトリ作成後にpush bitbucket上で操作 bitbucket.org heroku上にア…