Railsまわりの小ネタ集
Rail関連の小ネタ集です。
目次
Validation時に変更前の値を取得
Bootstrapのtooltipを改行する
associationのorderはassociation宣言で一緒にしとく
初期ユーザーのPWD作成メモ
secret_key_baseを作成
ローカルのDBデータをdumpしてHeorkuにリストア
Validation時に変更前の値を取得
validationかけるときに、変更前の値を使いたい時があるのです。
TECHSCORE 「Railsで変更前の値、型変換前の値、などなど」
便利。
Bootstrapのtooltipを改行する
tooltipは便利なんですが、改行のしかたがわからんくて困った。
# index.html.haml %button#hoge.btn.btn-default(type="button" data-toggle="tooltip" title="tooltip<br>message") # scripts.js.coffee $("#hoge").tooltip({html:true})
こんな感じでtitleに タグをいれといて、初期化するときにhtml:trueにしてあげればオッケーでした。
stackoverflow「How to make Twitter bootstrap tooltips have multiple lines?」
もしくは要素の属性に入れといてもいいみたい。
stackoverflow「Add line break to tooltip in Bootstrap 3」
associationのorderはassociation宣言で一緒にしとく
default scopeで設定してたけど、has_many, throughのときにorderに使うcolumnがないって言われちゃったので修正。
associationを宣言するときにオプションで設定できたんですね。
has_many :games, order: 'id ASC'
みたいな感じでオッケー。 と思ったらrspecでdeprecation warningがでてた。
stackoverflow「Deprecated warning for Rails 4 model with order」
Rails4からはこんな書き方が正しいみたいです。
has_many :games, -> { order(id: :asc) }
初期ユーザーのPWD作成メモ
ema25の日記「Railsのユーザ認証deviseを用いた簡単かつ突っ込んだ実装」
deviseをデフォルトで使ってるなら、暗号化はbcryptを使ってるはず。
rails consoleを起動して、
p BCrypt::Password.create("hogehoge") #=> "$2a$10$.PFE0gdf0G1v0aJwlIuAZeis6pFFNLNvcAysva7G3xJjaXnKtrInG"
これをDBのencrypted_passwordにつっこめばオッケー。
secret_key_baseを作成
Rails4になってconfig/secrets.ymlとかにsecret_keyをまとめたりしてますが、 本番は環境変数で設定するとして、developmentとtestにランダムなのを入れたい時のメモ。
Qiita「secret_key_baseあたりのメモ」
$ irb irb(main):001:0> require 'securerandom' => true irb(main):002:0> SecureRandom.hex(64) => "xxxxxxxxxxxxx"
という感じで64桁のランダムな文字列を取得できる。 これをコピペしてsecrets.ymlに追加すればオッケー。
便利コマンド疑惑
と思ったけど、もしかして
rake secret
コマンドでできたりするのか…?
RailsGuides「A Guide for Upgrading Ruby on Rails」
こんど試してみよう。
ローカルのDBデータをdumpしてHeorkuにリストア
よくあるこのシチュエーション。
kaosfield blog「ローカルで dump した PostgreSQL のバックアップを Heroku に restore するAdd Star 」
pg_dump onsen_development -F c -f onsen_db mv onsen_db ~/Dropbox/Public/onsen_db
DropboxのPublicLinkを取得。
heroku pgbackups:restore HEROKU_POSTGRESQL [DROPBOX_URL]
これでオッケー。
ちょいちょい使うけど毎回ぐぐるの大変なのでまとめといただけ。
おしまい。









