2013-10-01から1ヶ月間の記事一覧

showアクションを文字列で

rails3普通のRailsアプリなら数字でリクエストを送るけど文字列で送りたい。RedmineのProjectsController#showで同じことやっていたので、ソースを追うとfindメソッドを上書きしてた。 # app/models/project.rb def self.find(*args) if args.first && args.…

ポリモーフィックなカラムのセレクトボックスを作る

rails4 ポリモーフィック(polymorphic)関連とは UserモデルとPostモデルの両方にPhotoモデルを関連つけたい。 ユーザと記事は画像を持てる。みたいな時に このポリモーフィック関連を使うといい感じに実装できる。(~ableにするのが慣習っぽい。)使うには、Ph…

現在ディレクトリのファイル名を一括リネーム

ruby-2.0.0-p247 $ pry [1] pry(main)> Dir.glob("**").each_with_index do |name, i| File.rename(name, "#{i}.jpg"); end 全部jpgになっちゃうけど

Rubyのクラスオブジェクトについて 1

環境 ruby-2.0.0-p247パーフェクトRubyのクラスオブジェクトのところをかいつまんで読んでみたまとめ的な感じ。 クラスを定義する class式を使うのとClass#newで定義できる。 class Hoge end a = Class.new Class#newを使う場合は無名クラスというものになる…

ロードパス

同じディレクトリにある自作rbファイルをrequireしようとしたとき LoadError: cannot load such file -- testとなって読み込めにないことがあった。 requireメソッドはロードパスというグローバル変数に格納しているパスを探索し、探索した結果そのファイル…

Model.newの時に初期値を設定する その2

前の記事でinitializeメソッドのオーバーライドしていたけど、 Activerecordのdoc見るとafter_initializeというコードバックがあるみたいだったのでこっち使った方がよさそう。 直接あなたのアクティブレコードinitializeメソッドをオーバーライドする必要性…

Model.newの時に初期値を設定する

railsl4createアクションでもnewしているのでnilの場合だけ設定してる。 class Item < ActiveRecord::Base def initialize(*args, &block) super self.start_on = DateTime.now.to_date if self.start_on.nil? self.end_on = DateTime.now.to_date + 1.week …

act_as_listで別リストにする項目を文字列で

acts_as_list (0.2.0) acts_as_list scope: :slugとすると、slug_idでグルーピングされる。 こうすればいい acts_as_list scope: %q!slug = '#{self.slug}'! 参考 http://d.hatena.ne.jp/hichiriki/touch/20100212/1265980728