ノンカフェインであなたにやさしい

Rails,HTML,JavaScript,jQuery,PHP,CakePHPなど

Rails RansackでNULLS LASTでsortする

Ransackのconditionには入れられないらしい

NULLS LASTでsortするには Ransackの外側で普通にOrder指定する

Model.search(conditions).result.order('column DESC NULLS LAST')

脱Ransackしたい

参考

How to add NULL LAST to sorts · Issue #443 · activerecord-hackery/ransack · GitHub

RailsでPostgreSQLにNULLS LASTのインデックスを追加する方法

タイトルママ

nulls lastのインデックスを作りたいけどなかなか見つからなかったので書きました。

migration にこれ

add_index :table, :column, order: { column: 'DESC NULLS LAST' }

参考

PostgreSQL: Ordering, NULLs, and indexes - makandropedia

元のPostgreSQLのオプションはこちらで確認できます

https://www.postgresql.jp/document/8.3/html/sql-createindex.html

Reactで Uncaught TypeError: Cannot read property 'setState' of undefined と怒られた時の対処方

コンストラクタで明示的にthisをbindして上げる必要があるらしい

constructor(props) {
  super(props);
  this.onChangeValue = this.onChangeValue.bind(this);
}

参考

ES6でReact使ってたらsetStateがundefinedとか怒られた件 - とっしぃのTech Memo

Reactで Uncaught TypeError: Cannot read property 'setState' of undefined と怒られる場合の対処法 - Qiita

Railsでall_hourメソッドが欲しい

Railsの時間関係の便利なメソッド達 all_month, all_day などなど…

でもall_hour がない

作ってしまおう

class ActiveSupport::TimeWithZone
  def all_hour
    beginning_of_hour..end_of_hour
  end
end
Time.current.all_hour 

# => Mon, 26 Jun 2017 19:00:00 JST +09:00..Mon, 26 Jun 2017 19:59:59 JST +09:00

大満足

RailsでDBに配列Arrayを保存する

RailsでDBに配列を保存する方法

serialize :column_name を指定

RailsでDBに配列を保存する方法(サンプルコード)

class Hoge < ApplicationRecord
  serialize :arr
end

hoge = Hoge.new(arr: [1, 2, 3])
puts hoge.arr # => [1, 2, 3]

Arrayと明示するとこういう使い方もできるみたい

class Hoge < ApplicationRecord
  serialize :arr, Array
end

hoge = Hoge.new
hoge.arr << 1 << 2 << 3
puts hoge.arr # => [1, 2, 3]