筋肉とエンジニアリングで すべてを解決するブログ

筋トレ、JavaScript、Ruby で世界を変えてやります。

rails (ruby) でわからなかったことまとめ

truncate / 文字列を省略して ... にしたい!

# 1234567890...
truncate('1234567890ABCDE', :length => 10)

配列と配列結合したい!

# += がたぶん正解
# [1,4,5,9]
array1 += array2

# 配列の中に配列 push するときは
# [1,4,[5,9]]
array1 << array2

MySQL+ActiveRecordで、与えられた配列順にorderしたい時

参考 : Rails - MySQL+ActiveRecordで、与えられた配列順にorderしたい時 - Qiita

# ActiveRecordでやろうとする時、自分でsanitizeする必要がある。
# field(id, 1, 2, 3)
sanitized_query = ActiveRecord::Base.send(:sanitize_sql_array, ["field(id ,?)",ids])
Model.where(id: ids).order(sanitized_query)

日付 / timestamp

# 2014-10-12 00:00:00 +0900
Date.new(2014,10,12).to_time

# 1413039600
Date.new(2014,10,12).to_time.to_i

# 今日
Date.today()

# timestamp から 指定した日付に
Time.at(1413039600)