Ruby, Ruby on Rails 3 Tips

ある程度コードを書いていると、使わなくなったメソッドや、新しいメソッドを作ったので使って欲しくないメソッドなどが多々出てくるかと思います。

コメントで書いておいても、使う人はいるし、既存コードで知らぬ間に使ってあったりもします。

そんな時は

depricatedをログに出力するようにしてしまいましょう。

そうすれば、その処理を通るたびにワーニングとしてdepricatedなメッセージが出力されるので

対処しやくすなります。 ...

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が欲しい!

という時 ...

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 ...

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(&quo ...

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″
と追記して

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-ge ...

Ruby, Ruby on Rails 3 Tips

Rails 3.2では、javascriptやstylesheetはassetにまとめられます。

ここにまとめられたものは
例えばstylesheetであれば自動的に「コントローラ名.css.scss」がcssコンパイルされ、
リンクされます。自分で指定する場合は
<%= stylesheet_link_tag “users” %>
とすればリンク出来ます。

さて、Rails3.2では、styles ...

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/environmen ...

Ruby on Rails 3 Tips, Ruby on Rails メモ

バッチ処理として書いたrbファイルをテストする場合

テストケース内で

system("ruby バッチファイル")

としても良いが

たとえばTimecopで日付を固定してテストする場合には具合が良くない。

バッチのプロセスが別プロセスで動くため、Timecopの設定がバッチに反映されない。

なので

systemで呼び出している部分を

load "バッチファイル&qu ...

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に設定してやることで、表示できるようになる。

ちなみに、サーバに配置してpasseng ...