RailsからMySQLのテーブルを作成する時にLONGBLOBなカラムを作成する方法
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 ...
passengerをインストール
Ruby on Railsの本番実行環境として定着したpassengerです。 では、インストールをしてみます。 まず、passengerをインストールするために必要なモジュール Ruby 基本中の基本 rubygems gemでインストールするので、こちらも基本 あとは、以下のライブラリ群が必要になります。 GNU C++ compiler Curl development headers with SSL support OpenSSL development headers Zlib de ...
ホスト名とポート番号を取得する方法
Railsで… ホスト名(gendosu.jpという感じ)を得る request.host ホスト名:ポート番号(gendosu.jp:80という感じ)を得る request.host_with_port
Rails 2.*系で「rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+)」エラー
Rails 2.*系のプロジェクトで、rakeコマンドをたたくと、 rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+) というエラーが発生することがある。 このエラーは rake のバージョンが新しすぎるのが原因。 基本的にRails3.0.5より前のRailsでは、rakeのバージョンは0.8.7を使う。 新しいrakeが入っている場合 gem uninstall rake gem install rake - ...
ar-octopus
MySQLのマスタースレーブ構成にRailsからアクセス出来るようにするプラグイン
Rails 3.0.5 で「uninitialized constant Rake::DSL」
uninitialized constant Rake::DSLの対処
Aptana Studio 3 でのAptanaのテーマ設定
Aptana Studio 3 にしたところ、Ruby on Railsの表示にテーマが適用されるようになった。 これはこれで、背景が黒でかっこいいのだが、SVNのベースリビジョンとの比較をかけたりすると、すべて真っ黒で良く見えない。 簡単に行くなら、テーマを変えるのがいいが、せっかくなので、Aptana Studio 3 のテーマのままでなんとかしたい。 ま、背景黒というのは諦めて、白くする 白くすると、キーワードなどが色が薄すぎて見えない ので、色を濃くする。 そんな感じのことを地道にやって ...
carrierwave
carrierwaveは、ファイルアップロード用のプラグインで、attachment_fuと同じようなやつ。 インストール Gemfileに gem 'carrierwave' を追加 carrierwave用のファイルをジェネレータで作成する rails generate uploader Image 以上のコマンドを実行すると app/uploaders/image_uploader.rb ファイルが作成される モデルの作成 rails g migration Image 出来上がったマイグ ...
Passengerで動かすRailsプロジェクトで、rMagickを使う時の設定
ImageMagickのをソースからインストール ※/usr/localに入るので、rootで実行 ./configure make install /usr/local/libをライブラリ登録 /etc/ld.so.conf.dに ImageMagick.confファイルを作成 ファイルの中に /usr/local/lib を記入 ldconfigを実行 rmagickのインストール gem install rmagick
rescue_from でコントローラごとに例外時のアクションを指定
コントローラで rescue_from を指定することで、そのコントローラで例外が発生したときなどに実行する処理を指定することが出来る。 class UserController < WomanController rescue_from Exception, :with => :catch_exception def catch_exception render :file => '/public/404.html', :status => 404 end end
Rails3 で、日本語化
Rails3の日本語化をする #config/application.rbファイルの編集 このファイルに日本語で動くことを指定する設定を追加する config.i18n.default_locale = :jp #config/localesディレクトリにjp.ymlファイルを設置 jp.ymlファイルの中身は "jp": errors: template: header: one: "1 個のエラーが発生しました" other: "{{count}} 個のエラーが発生しました" # The v ...
Rails3で、productionで起動したときにpublic内のファイルがnot foundになる件
rails3のプロジェクトを作成し、起動時に rails s -e production という感じでプロダクションモードで起動したときに、なぜかpublic配下のファイルがすべてNot Foundになってしまう。 これは、config/environments/production.rb ファイルの中の config.serve_static_assetsという設定があるのだが、これをtrueに設定してやることで、表示できるようになる。 ちなみに、サーバに配置してpassengerなどでpro ...
日本語のメールを送信する
代々、Railsでの日本語メールはパッチを当てるか処理を書かないと、普段日本で流通しているメールの形式にはならない。 ようするに、エンコーディングが違うのである。 RailsでActiveMailを使って普通に送信すると、エンコーディングをUTF-8で送信してしまう。 ThunderBirdとかGMailとかだと、その辺を勝手に解釈して正常に表示されてしまうが 日本にはいまだにエンコードがUTF-8では正しく表示されないメーラーがあったりする。 これに対応するには、エンコーディングをUTF-8で ...
camelizeとunderscore
AdminUserなんていうクラスがあるとして、 admin_user という文字列を欲しい時に "AdminUser".underscore #=> admin_user という感じで使う 逆にしたい場合は "admin_user".camelize #=> AdminUser
pluralizeとsingularizeで、単数形、複数形変換
複数形で書かれた英語表記の文字列を単数形に変換したい場合、または 単数形を複数形に変換した場合に使用する。 userという文字列がある場合 a = 'user' b = 'users' a.pluralize #=> users b.singularize #=> user となる
will_paginate
ホームページ github まだタグでv3.0.0正式対応のものがないようなので、preを使う インストール Gemfileに gem 'will_paginate', '~>3.0.pre', :require => 'will_paginate' を追加して bundle install 実行 使い方 一覧表示アクションの中で、一覧取得の処理を変更 # GET /articles # GET /articles.xml def index # allではなく、paginateに変 ...
rspec
デファクトスタンダードな、Railsのテストツール ホームページ 公式 まだタグでv3.0.0正式対応のものがないようなので、bataを使う インストール Gemfileに group :test do gem 'rspec-rails', '~>2.0.0.bata', :require => 'rspec-rails', :group => :development end を追加して bundle install 実行 rspec用タスクを生成 rails g rspec ...
FactoryGirl
fixtureの代替となるツール ホームページ Github インストール Gemfileに group :test do gem 'factory_girl_rails' end を追加して bundle install 実行 使い方 定義 specフォルダの下にfactoriesフォルダを作成 このフォルダの中にrbファイルを作成し、そこにデータのひな形を作成する #spec/factories/users.rb Factory.define :user do |f| f.nam ...
devise
DeviseはWardenに基づくRailsのフレキシブルな認証プラグインです。 特徴は Rackベース Railsエンジンに基づく完全なMVC 複数ロール(複数テーブル)が可能 モジュール方式概念に基づいている ホームページ Github インストール Gemfileに gem 'devise', :require => 'devise' を追加して bundle install 実行 使い方 deviseを使用するために必要な最低限のファイルをインストールする rails genera ...
Authlogic
認証処理 openIDとかLDAPとかと連携して認証するためのプラグインが存在する ホームページ Github Rails 3 に対応していないようなので、フォークの中からRails 3 対応中の物を探す 新しい物が良いな~と言うことで、 あたりが良いか? だが、安定して使える物を探す必要はある。 オリジナルがRails 3 に対応すれば、それを使いたい。 インストール Gemfileに gem "authlogic", :git => "git://github.com/crossroa ...