Ruby, Ruby on Rails 3 Tips

ある程度コードを書いていると、使わなくなったメソッドや、新しいメソッドを作ったので使って欲しくないメソッドなどが多々出てくるかと思います。 コメントで書いておいても、使う人はいるし、既存コードで知らぬ間に使ってあったりもします。 そんな時は depricatedをログに出力するようにしてしまいましょう。 そうすれば、その処理を通るたびにワーニングとしてdepricatedなメッセージが出力されるので 対処しやくすなります。 書き方としては、 def old_method warn " ...

Ruby on Rails 3 Tips

RailsからMySQLのテーブルを作成するには Railsのマイグレート機能には、カラム属性としてbinaryがあるのですが、これを指定してもMySQL上ではBLOBというカラム属性になります。 構文としては create_table :user_photos do |t|   t.string :name   t.binary :photo_image end もっと大容量のLONGBLOBが欲しい! という時にはbinaryの所にオプションで:limit => 16.megabyte ...

Ruby on Rails 3 Tips

scope :active, where('deleted_at is null') というスコープを設定したとして この条件を含むSQLをコード内で取得したい場合ってありますよね。 SQL書いてでゴニョゴニョしたい場合とか…。 そんな時には Article.active.to_sql としてやれば、 select * from articles where deleted_at is null というSQLが取得出来ます。 参考例 # === タグ class Tag < Act ...

Ruby on Rails 3 Tips

class ActiveForm include ActiveModel::Conversion extend ActiveModel::Naming include ActiveModel::Validations def persisted?; false; end def initialize(attributes = {}) attributes.each do |name, value| send("#{name}=", value) rescue nil end ...

Ruby, Ruby on Rails 3 Tips

sql = " SELECT * FROM users WHERE created_at >= '#{2.weeks.ago}' ORDER BY created_at DESC " @users = User.paginate_by_sql(sql, :page => params, :per_page => 20) こんな感じ

Ruby on Rails 3 Tips, Ruby on Rails 3 プラグイン

Rails 2.x系で、論理削除と言ったら、もうこれ!というのが acts_as_paranoid でした。 Rails 3.x系では rails3_acts_as_paranoid を使います。 インストールの方法は GemFileに gem "rails3_acts_as_paranoid", "~>0.2.0" と追記して bundle実行 ※Rails3.1の場合は、GemFileに書くプラグインのバージョンが"~>0.1.4"になります。 ※Rails3.0の場合は、Gem ...

Ruby, Ruby on Rails 3 Tips

UbuntuにRails3.2.8の実行環境を一からインストールしてみます。 Ubuntuは12.04を使用します。 まずは Rubyから、と言いたい所ですが、必要パッケージ類から MySQLをインストール sudo apt-get install mysql-server mysql-client 続いて、RubyはUbuntuのパッケージで1.9.3と言うのがあるので、これを入れます。 sudo apt-get install ruby1.9.3 Railsを入れます。 sudo gem i ...

Ruby, Ruby on Rails 3 Tips

Rails 3.2では、javascriptやstylesheetはassetにまとめられます。 ここにまとめられたものは 例えばstylesheetであれば自動的に「コントローラ名.css.scss」がcssコンパイルされ、 リンクされます。自分で指定する場合は <%= stylesheet_link_tag "users" %> とすればリンク出来ます。 さて、Rails3.2では、stylesheetはscssが、JavaScriptはCoffeScriptがそれぞれ 標準で使 ...

Ruby, Ruby on Rails 3 Tips, Ruby on Rails 3 プラグイン

Ruby on RailsからSolrを使うには、このプラグインを使うと良さそうだ sunspot_rails ホームページは sunspotプロジェクトの一部になっています。 インストールは Ruby on Rails 3の場合 gemfileに を追加 あとは を実行 Ruby on Rails 2の場合は #config/environment.rb に を追加 #config/development.rb #config/test.rb に を追加 を実行 config/sunspot. ...

Ruby on Rails 3 Tips, Ruby on Rails メモ

バッチ処理として書いたrbファイルをテストする場合 テストケース内で system("ruby バッチファイル") としても良いが たとえばTimecopで日付を固定してテストする場合には具合が良くない。 バッチのプロセスが別プロセスで動くため、Timecopの設定がバッチに反映されない。 なので systemで呼び出している部分を load "バッチファイル" というように、loadに変えると、そのバッチ処理が都度ロードされるので テストを実行しているプ ...

Ruby on Rails 3 Tips, Ruby on Rails メモ

Railsで日付処理は、意外と簡単に出来たりする。 1日前 1日後 1ヶ月前 1ヶ月後 1年前 1年後 また、本日の開始日時として、たとえば 2011-10-01 00:00:00 という情報を取りたい場合 逆に 2011-10-01 23:59:59 という情報を取りたい場合 月初を得る 月末を得る

Ruby on Rails 3 Tips, Ruby on Rails メモ

Railsで… ホスト名(gendosu.jpという感じ)を得る ホスト名:ポート番号(gendosu.jp:80という感じ)を得る

Ruby on Rails 3 Tips, Ruby on Rails メモ

Rails 2.*系のプロジェクトで、rakeコマンドをたたくと、 というエラーが発生することがある。 このエラーは rake のバージョンが新しすぎるのが原因。 基本的にRails3.0.5より前のRailsでは、rakeのバージョンは0.8.7を使う。 新しいrakeが入っている場合 と実行すればよい

Ruby on Rails 3 Tips

uninitialized constant Rake::DSLの対処

Ruby on Rails 3 Tips

Aptana Studio 3 にしたところ、Ruby on Railsの表示にテーマが適用されるようになった。 これはこれで、背景が黒でかっこいいのだが、SVNのベースリビジョンとの比較をかけたりすると、すべて真っ黒で良く見えない。 簡単に行くなら、テーマを変えるのがいいが、せっかくなので、Aptana Studio 3 のテーマのままでなんとかしたい。 ま、背景黒というのは諦めて、白くする 白くすると、キーワードなどが色が薄すぎて見えない ので、色を濃くする。 そんな感じのことを地道にやって ...

Ruby on Rails 3 Tips

Aptana Studio 3 で、Shift Right, Shift Leftのショートカットキーを設定する

Ruby on Rails 3 Tips

ImageMagickのをソースからインストール ※/usr/localに入るので、rootで実行 /usr/local/libをライブラリ登録 /etc/ld.so.conf.dに ImageMagick.confファイルを作成 ファイルの中に /usr/local/lib を記入 ldconfigを実行 rmagickのインストール

Ruby on Rails 3 Tips

コントローラで rescue_from を指定することで、そのコントローラで例外が発生したときなどに実行する処理を指定することが出来る。

Ruby on Rails 3 Tips

Rails3の日本語化をする #config/application.rbファイルの編集 このファイルに日本語で動くことを指定する設定を追加する #config/localesディレクトリにjp.ymlファイルを設置 jp.ymlファイルの中身は

Ruby on Rails 3 Tips

rails3のプロジェクトを作成し、起動時に という感じでプロダクションモードで起動したときに、なぜかpublic配下のファイルがすべてNot Foundになってしまう。 これは、config/environments/production.rb ファイルの中の config.serve_static_assetsという設定があるのだが、これをtrueに設定してやることで、表示できるようになる。 ちなみに、サーバに配置してpassengerなどでproductionモードで実行した場合は con ...