Railsのmigrationで後からNULL制約を設定する
Railsのmigrationで後からNULL制約を設定する - Qiita からの転載です。
NULL制約の追加には change_column_null
を使います。
引数にはテーブル名、カラム名、null falseかtrueか、変更後のデフォルト値
class ChangePointColumnOnPost < ActiveRecord::Migration[5.2] def change change_column_null :posts, :point, false, 0 end end
これだとちょっと問題が…
ここで設定されるdefaultは現在nullのカラムを変更するためだけのもので、テーブルの制約にdefault値が設定されるわけではないので、nullでレコードの追加をしようとした際にコケてしまいます。 そのため別でデフォルト値の設定が必要になります。
NULL制約追加+デフォルト0を設定するコード postsテーブルのpointカラムがNULL制約なし、デフォルトNULLになっているのを、NULL禁止、デフォルト0に変更するマイグレーションになります。
class ChangePointColumnOnPost < ActiveRecord::Migration[5.2] def up change_column_null :posts, :point, false, 0 change_column :posts, :point, :integer, default: 0 end def down change_column_null :posts, :point, true, nil change_column :posts, :point, :integer, default: nil end end
git 管理にサヨナラバイバイ
rm -rf .git/
すべてをバージョン管理から外したい場合は git 管理ディレクトリを削除する。
.git/
に情報が蓄積されているだけのため、これを削除すれば全て無かったことになる。
FactoryBotで複数個を一括で作る
create_list(:user, 10)
create_list
に個数を渡すだけ。
神🎉
通常の create
同様、引数も渡せます
create_list(:user, 10, name: 'hoge')
create以外にもbuildもありました
build_list(:user)
公式ドキュメントが読みやすくて感動
Searchkickを使ってidでorderするときの罠
Searchkickでidでorderしようとしたのに全然動かなかったのでその対応方です。
通常の使い方
Product.search(order: { id: :desc })
これだとなぜかidでソートされない
idでソートする方法
orderの中身を配列で囲む
Product.search(order: [{ id: :desc }])
マジすか…
基本的な使い方はこちら
Messenger Ninja 名前,写真を変更できるようアップデート
半月前にリリースしたMessengerで相手の名前と写真を隠すChrome拡張を、名前と写真を自由に変更できるようアップデートしました。
設定方法
アイコンを右クリックしてメニューから オプション
を選択
設定したい名前とURLを入れて保存してください🙌