Rails
Railsアプリの管理画面を簡単に作成できるActiveAdminというgemがあります。 このgemはかなり便利で、crud操作はもちろんのこと、便利な検索(Filter)や、 csv、xml、jsonでのダウンロード機能も提供してくれます。さらにactive_admin_importableというgem…
book = Book.find(1) book.id = 35 book.saveとするとidを変更できそうなものですが、uniqueness制約を付けている場合、 そのuniquenessカラム群がユニークであるにも関わらず、自分自身を指して 「uniquenessカラムが同じで別idのレコードが存在する」と更…
NumberHelper アクティブサポート(activesupport) - RailsドキュメントTextHelper アクティブサポート(activesupport) - Railsドキュメント
ApplicationController.helpers.メソッド例:ApplicationController.helpers.number_to_human_size(filesize) → ○○ MB
モデルクラス.attribute_names またはモデルクラス.column_namesとすることで、カラム名が配列で返却されます。
mail-iso-2022-jp というgemが便利です。Gemfileに登録してbundle installで読み込んだら 後はmailクラスでrequireするだけです。
ログのカラー表示は見やすくてとても便利です。 ただ、stdoutではカラー表示されるのですが、logファイルをview等で見た場合、カラーコードが文字列として表示されてしまい、見づらいものとなります。カラー表示を止めたい場合には、config/application.rbに…
railsのActiveRecordでdatetime型を検索する場合、検索条件には TimeインスタンスかActiveSupport::TimeWithZoneインスタンスが指定できます。日付の区切りを指定したい時などにDateインスタンスを条件に使えると便利なのですが、 こちらはActiveRecordの検…
.in_time_zone('Tokyo') を使って都度JSTに変換します。例 Book.updated_at.in_time_zone('Tokyo').to_s
Bookを、booksテーブルを表すActiveRecordモデルだとすると、 Book.columns_hash['isbn'].typeで、isbnカラムの型を取得できる。戻り値はシンボルで、 :string :integer :float :datetimeなどがある。
Book.where('tag = ?', tag_b)これを↓こうするとlikeが使えます。Book.where('tag like ?', "%#{tag_b}%") Book.where("tag like '%?%'", tag_b) とか Book.where('tag like ?', tag_b) とかだと動きません。 直感的じゃないのでwhere以外で実現した方が良い…
~/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/webrick/config.rb を編集し、名前解決できるようにします。 修正後 :DoNotReverseLookup => true 参考:http://blog.setunai.net/20121120/webrickrails%E3%81%8C%E9%81%85%E3%81%84/
今私が運用中のアプリの中に、rails3.0.3ベースのものが2つあります。 railsのデフォルトのロガーはなんと日時を表示してくれず、 障害発生時に困ることがしばしばでした。 そこで、ログに日時が表示されるようにカスタマイズしてみました。 rails標準のログ…
rails3のAR(Arel)でIN句を使った条件をAND、ORで連結する方法 AND、ORを使わずにIN句を使うには、下記のように第二引数で配列を指定すれば良いです。簡単ですね。scope :magazine, where("type_id in (?)", BookType.has_magazine_code.map{|ele| ele.id }…