PIYO - Tech & Life -

rails generate migrationにdecimalのオプションを渡す

Rails 小ネタ

小ネタです。

decimalのカラムを追加するときに

add_column :items, :new_column, :decimal, precision: 3, scale: 2

とかってやると思うんですけど、これをgeneratorのコマンドに渡せないかな?と思って調べました。

コマンドに渡すっていうのはこういうのです。

(以下、NewColumnとかnew_columnは適当に読み替えてください)

% rails g migration AddNewColumnToItems new_column:string

decimalの場合は new_column:decimal{precision,scale} でいけます。

たとえば、

% rails g migration AddNewColumnToItems "new_column:decimal{3,2}"

クオートつけないと、{3,2}の部分がシェルに評価されてしまうのでクオート必須です。

RELATED

Blazer gemでRailsにSQL集計ダッシュボードをつける

◯◯なユーザーのリストが欲しい、といった類の要望をお客さんにもらうことがあります。SQLでデータを引っ張ってくればリストを作れるものの、本番DBに繋いでSQL投げて出てきたものを渡す、ってことを考える

Rails周りで最近知ったこと 2018/04版

String#squish ActiveSupportで定義されているらしい。 def squish dup.squish! end def squish! gsub!(/[[:space:]]+/, " ") strip! self end halt_callback_chains_on_return_false がDeprecatedになった件でプルリク見てたら書いてあってみつけた。 deprecate halt_callback_chains_on_return_false instead of `halt_and… · rails/rails@4e63ce5 ActiveSupport::Deprecation.warn(<<-MSG.squish) ActiveSupport.halt_callback_chains_on_return_false is deprecated and will be removed in

Railsのroutes.rbでconstraintsを使う

ルーティングのマッチングの優先順位のせいか期待通りのコントローラーで処理できないことがあります。そんなときにconstraintsオプションでroutesのパラメータのフォーマットを制限できます。たま