ruby

ActiveRecord の scope 内でリレーションが切れると undefined

こんなのにはまる人はいないと思いますが、 scope と一緒に find とかリレーションがかえってこないメソッドを使用すると、 undefined method `default_scoped?' ってなります。 私は非常に悩みました。 悲しかったです。

ActiveRecordで特定カラムの要素を配列で取り出す。

ActiveRecord::Relationクラスにpluck(:hoge) で。 > Story.scoped.pluck(:title) (2.5ms) SELECT title FROM `stories` WHERE `stories`.`publish` = 1 # => ["パンドラ(禁后)", "リゾートバイト", "姦姦蛇螺", "地下のまる穴", "封じ", "八尺様", "赤い…

Clockwork で cron on Heroku

Heroku で cron したくて調べたらclockworkというgemがよさそうだったので使用してみた。 Gistでもよかったんだが、せっかくなのでブログにも書いてみた。 内容としては毎日指定した時間にLingr上でつぶやくbot 感想としてはClockworkの時間の指定の仕方がシ…

Rails の Model のカラムのタイプをとる

便利だったのでメモ。 > Admin.columns.find{ |n| n.name == 'id' }.type => :integer

メソッドの定義されている場所を出す

> Admin.method(:scope).source_location => ["/Users/hrysd/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/scoping/named.rb", 174]

Globalize3 でジャパニーズに差をつける。

Gem の説明 例えばブログの記事のタイトルをとか言語別に対応させたいときとかに、便利にいける感じ。 いれてみる Gemfile に以下を追加 gem 'globalize3' 設定とか 既存のモデルにlocaleを追加する場合 マイグレーションファイルを作成 $ rails g migration…

FactoryGirl は いい女

FactoryGirlについて調べてた。 宣言 spec/factories/users.rb FactoryGirl.define do factory :user do name 'hrysd' sequence :email { |n| "test_#{n}@email.com" } trait :active do status 'active' end trait :inactive do status 'inactive' end end …

Mountain Lion に rbenv を導入

rbenv とは いろんなバージョンのRubyを管理するもの。 RVMなんてのもあります。 Instlall してみる Githubからクローンする方法とhomebrewで入れる方法がある。 僕は、homebrewを乱用しているので、アップデートしてから入れた。 $ brew update $ brew inst…

db_purge という gem をつくった。

何をするgem? これは、Rails のdevelopment環境でsqliteを使用している人向けです。 ブランチ移動で、dbに変化とかあって一気につくり直す時とかに使用します。 単に db を drop して migrate, seed してるだけです。 使い方 rake db:purge ほら!綺麗な最…

Capistrano でデプロイした後にLingrに通知する gem をつくりました。

前のエントリですがCapistrano でデプロイした後にLingrに通知するを gem化しました。 Github: hrysd/capistrano-lingr はじめてのgem作成で、かなり苦戦しました。 Capistrano のプラグインとして作ったので、 Capistranoで設定した値のとりかたでかなり悩…