インスタグラムのブログパーツを作った📷

作ったもの

Insta Window Tool

こんな感じでインスタの写真をサイトに貼り付けられます。

f:id:kuronekopunk:20190623171156p:plain

作った背景

インスタグラムの写真をサイトに貼る必要があったので調べたところ、ブログパーツは既にあったのですがブログパーツのサイトにリンクしてしまう残念仕様だったので自作しました。

技術スタック

  • VueJs
  • FirebaseHosting
  • UIKit

くらいかな?

今後の予定

ブログパーツのサイズや色など設定できるようにしていくつもりです(いつか)

突貫で作ったものなのでキレイにしてくれたり機能追加してくれる方募集中です😉

なにかあれば@kuronekopunkへ💁‍♀️

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

https://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-change_column

これだとちょっと問題が…

ここで設定される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

FactoryBotで複数個を一括で作る

create_list(:user, 10)

create_list に個数を渡すだけ。
神🎉

通常の create 同様、引数も渡せます

create_list(:user, 10, name: 'hoge')

create以外にもbuildもありました

build_list(:user)

公式ドキュメントが読みやすくて感動

devhints.io

Searchkickを使ってidでorderするときの罠

Searchkickでidでorderしようとしたのに全然動かなかったのでその対応方です。

github.com

通常の使い方

Product.search(order: { id: :desc })

これだとなぜかidでソートされない

idでソートする方法

orderの中身を配列で囲む

Product.search(order: [{ id: :desc }])

マジすか…

github.com

基本的な使い方はこちら

qiita.com