Just do IT

思うは招く

2020-08-01から1ヶ月間の記事一覧

【Rails】カラムに not null 制約を後から設定したい

change_column_nullメソッドが使える。 change_column_null :products, :name, false Active Record マイグレーション - Railsガイド

Mac の kindle アプリで mobi 形式の書籍を見る方法

以下のディレクトリで mobi 形式のファイルを設定し、Kindle を再起動する。 /Users/ユーザーネーム/Library/Containers/com.amazon.Kindle/Data/Library/Application Support/Kindle/My Kindle Content パスは「Kindle」→「設定」からでも確認・変更ができ…

Ruby の any? メソッドの動き

Rubyのany?とは配列に対して、要素がどれかひとつでも条件に合致したら真を返すメソッド。 すべての要素が偽である場合に false を返します。真である要素があれば、ただちに true を返します。 ブロックを伴う場合は、各要素に対してブロックを評価し、すべ…

Ruby で月末、月初を取得

require "date" #月末 p last_day = Date.new(2020, 8, -1) #月初 p first_day = Date.new(2020, 8) $ ruby dates.rb #<Date: 2020-08-31 ((2459093j,0s,0n),+0s,2299161j)> #<Date: 2020-08-01 ((2459063j,0s,0n),+0s,2299161j)> 日付が入った配列を作りたい場合。 dates = [] (first_day..last_day).each do |date| dates << date end puts da…</date:></date:>

Ruby で RSpec のセットアップ

勉強用のためにRSpecをセットアップしたい場合の手順。 $ md rspec-setup $ cd rspec-setup $ bundle init #追加 gem "rspec" $ bundle install $ bundle exec rspec --init specファイル(テストファイル)を作成。 $ touch spec/say_spec.rb spec/say_spec…

Ruby の merge の挙動

たとえば、こんな2つのハッシュがあるとする。 smart_phones = { apple: :iphone, google: :pixel, samsung: :galaxy, } other_smart_phones = { huawei: :p30, sharpe: :aquos } これらのハッシュをがっちゃんこしたい場合、mergeメソッドを使える。 puts s…

webpack-dev-server をしたら Chrome でHTTP431エラー

問題 webpackで開発用サーバー(webpack-dev-server)を立ち上げたとき、Chromeで「このページは動作していません。HTTP 431 エラー」と出て何も表示されなかった。Safariなど他のブラウザでは問題なく動く。 解決 Chromeの設定からCookieを削除することで解…

Rails で日付の取得をする

今の日時を取得 月末、月初を取得 前日、翌日 30日前、30日後 1ヶ月前、1ヶ月後 1年前、1年後 Date.today と Date.current の違い 参考 今の日時を取得 #Railsなら $ rails c #Rubyなら $ irb require 'active_support/all' #Railsの場合は不要 irb(main):00…

Rails 部分テンプレート partial を書く書かない場合のローカル変数の渡し方

Rails で部分テンプレートを呼び出すとき、partialと書いた場合と、書かない場合のローカル変数の渡し方が異なるのでメモ。 #partialを書くなら、localsが書ける <%= render partial: "form", locals: { article: @article } %> #partialを書かないなら、loc…

【CSS】ある要素の、ひとつ下の要素をクリックさせたい場合

やりたいこと ある要素の、ひとつ下の要素をクリックさせたい 「この要素はクリックやタッチを無効にして、ひとつ下の階層をクリック・タッチさせたい!」 てなときに使えるCSS。 方法 pointer-events: none; これを指定した要素は、表示は見えてもクリック…

Rails で date型カラムの view 表記を l メソッドのオプションで変更する

やりたいこと カラム(date型)の表記をview側で変えたい 例:「2020/08/25」→「08/25」 解決 こんなロケールファイルがあるとする。 #翻訳ファイル ja: date: formats: default: "%Y年%m月%d日" ym_jp: "%Y年%m月" ym: "%Y%m" ymd_hy: "%Y-%m-%d" da_jp: "%…

Rails に RSpec と FactoryBot を導入する手順

環境 手順 gem インストール RSpec 導入 application.rb spec_helper.rb rails_helper.rb スペックファイルの生成 rspecの実行 システムスペックには何を書けばいいか 参考 RSpecを学ぶのにオススメの記事 環境 $ rails -v Rails 6.0.3.2 $ ruby -v ruby 2.7…

Rails で minitest テストファイルの生成をやめてスペックファイルを自動生成する

やりたいこと rails g modelやrails g controllerなどをしたときに、自動でファイルが生成されるのをやめたい RSpecのスペックファイルを作ってほしい minitest のテストファイル生成をやめたい 手順 config/application.rbに設定をする。 RSpecのテストファ…

RSpec でスペックファイルを生成するコマンド

#システムスペック(システムテスト) bin/rails g rspec:system ファイル名 #モデルスペック(モデルテスト) bin/rails g rspec:model ファイル名

Capybara でデータ削除時の confirm ボタンを押したい

こう書く。 page.accept_confirm do first("tbody tr").click_link "削除" end ほかにも。 #「ログ」を削除したい場合 it "正常に削除できる" do page.accept_confirm do click_link "削除" end expect(page).to have_content "ログを削除しました" end Meth…

rails コンソールでテーブルのレコードをすべて削除したい

たとえば、articlesテーブルのレコードをすべて削除したい場合。 Article.destroy_all

Rails 6 で Vue.js をセットアップするコマンド

bin/rails webpacker:install:vue ちなみに React なら。 bin/rails webpacker:install:react 関係ないけど自動でビルドを走らせるにはこちら。 bin/webpack-dev-server webpackで使うのと同じ要領。

Railsのストロングパラメーターは何をしているのか

Railsでよく見るストロングパラメーター。 ~ private def session_params params.require(:session).permit(:email, :password) end end フォームから、リクエスト時のパラメータをチェックする。この場合、{ session: {...}}であるかどうかをまず調べている…

【Rails】リクエストパスとコントローラー名が違う場合の form_with の書き方

自前でサインアップ用のコントローラーを作ったとき、form_withでうまく値が送れなくて少しハマったのでメモる。 問題 たとえば以下のようなルーティングをしているとき。 Rails.application.routes.draw do get "/signup", to: "users#new" post "/signup",…

Rails アプリから gem を削除する

たとえば、pg という gem を削除する場合。 1、gemをアンインストール bundle exec gem uninstall pg 2、gemfile から gem 名を削除 - gem "pg" 3、bundle bundle

Rails アプリに devise を導入し、日本語化する

やりたいこと 手順 ルーティング viewの編集 Userモデル作成 devise認証用のviewファイルを生成 ロケール変更 リポジトリ ロケールファイルは必要ないのか? 参考 やりたいこと devise を入れてユーザー認証機能をつくりたい ついでに日本語化もしたい 手順 …

Rails でテーブルを削除する方法

たとえば users テーブルを削除したいとき。 マイグレーションファイルを作る。「dropテーブル名」としたほうがわかりやすい。 $ rails g migration dropUsers マイグレーションファイルではdrop_tableメソッドを使う。ブロック内にはもともとあったカラムを…

Rails アプリの日本語対応手順

いつも忘れるため、Railsアプリをつくるときの日本語化の手順を整理した。 環境 $ rails -v Rails 6.0.3.2 $ ruby -v ruby 2.7.1 手順 多言語化対応のための rails-i18n をインストール。 gemfile gem "rails-i18n" タイムゾーンとデフォルトロケールを日本…

rails credentials:edit で No $EDITOR to open file in と出るときの対応

環境 $ rails -v Rails 6.0.3.2 問題 以下のように秘密情報を編集するコマンドを打ったら、「エディターが設定されてないよ」とエラーが出て開けない。 bin/rails credentials:edit No $EDITOR to open file in. Assign one like this: EDITOR="mate --wait"…

Rails 6 で DB を SQLite3 から PostgreSQL に変更するのはコマンド一発

Railsアプリをrails newしたとき、DBをPostgreSQLにするオプションを忘れていた。 「database.yml を自分で編集するのめんどくさいなぁ・・・」と思っていたら、Rails 6 からはコマンドひとつで変更できるようになっていた。 Rails 6 からはコマンド一発 た…

rails で ./bin/test や ./bin/lint をすると Permission denied になる

問題 Railsアプリで以下コマンドをするとPermission deniedが出て実行できない。 $ ./bin/test $ ./bin/lint Rails 6.0.3.2 補足 binディレクトリに以下のようなスクリプトファイルを用意している。 ./bin/test #!/bin/bash bundle exec rspec ./bin/lint #!…

rubocop -a で frozen string literal が自動修正されない

問題 rubocop -aで自動修正しようとしたところ、frozen string literal のマジックコメントが自動で追加されておらず警告が出る。 config/initializers/wrap_parameters.rb:1:1: C: [Corrected] Style/FrozenStringLiteralComment: Missing frozen string li…

チーム開発課題を終えたので振り返る

僕は「フィヨルドブートキャンプ」というプログラミングを学ぶサービスに参加している。そこではチーム開発(Rails)の課題がある。GitHubを使用し、実際にサービスとして運営されているEラーニングシステムを開発する。 今回、チーム開発課題を終えたので振…

mac で locate コマンドを使う方法。ファイルを高速に検索したい

「macvim kaoriyaの設定ファイルってなんて名前だっけ?」 「vim っていう文字列を含むファイルを探したいな〜」 と、vimの設定ファイルの名前を探していたときのこと。 findコマンドだと検索がかなり遅いので、早いlocateコマンドを使いたかった。 ファイル…

git rebase -i の使い方と手順

Git

git rebase -i で何ができるの? なんのために使うの? git rebase -i 手順例 応用編 push するときは rebase -i を中止したい 感想 参考 git rebase -i で何ができるの? 複数のコミットを1つにまとめられる コミットの履歴を変更できる -i は --interactiv…