rails

Rails 2.3 で acts_as_paranoid を使ってみた

Railsで論理削除を行う方法の1つとして、acts_as_paranoidというプラグインがあるので、Rails2.3で試してみた。なお、rails3用にはrails3_acts_as_paranoidがあるようです。 acts_as_paranoidとは? データベースのテーブルのカラムに deleted_at を作って…

Autoload Path and Nest

I have tow files hoge.rb and baz.rb. app/models/hoge.rb class Hoge class Fuga Baz.new end end app/models/hoge/baz.rb class Baz end I have added the custom models to load path as follows.config/environment.rb config.autoload_paths += %W( #{…

Railsのfind_by_sqlとSTIについて

STI 時に find_by_sql で返すインスタンスのクラスについて調べてみました。activerecord-1.13.2 と activerecord-2.3.11 で挙動を調べました。 activerecord-1.13.2/lib/active_record/base.rb 427 # Works like find(:all), but requires a complete SQL s…

Rails2系でuse_transactional_fixturesを使うときの注意

テストは正しいと思うのに、何故か落ちる現象になりました。調べていたら、MySQLのMyISAMテーブルで use_transactional_fixtures が true にしていたことが原因であることが分かりました。 activerecord-2.3.10/lib/active_record/fixtures.rb use_transacti…

Symbolでconstantize

Rails の active_support/core_ext/string/inflections.rb で Ruby の String が拡張されて constantize が使えて便利です。 % script/console Loading development environment (Rails 2.3.11) >> "Hash".constantize => Hash >> :Hash.constantize NoMetho…

Rails2.3をMySQL4.xで使うときのRELEASE SAVEPOINTの問題

MySQL4系ではRELEASE SAVEPOINT をサポートしていないので、Rails2.3がMySQL4.xに向けて、RELEASE SAVEPOINTを使ってもエラーになるという話です。 実験環境 Rails 2.3.11 MySQL 4.1.22 エラーの再現 User.connection.transaction do User.connection.transa…

Rails勉強会@東京第60回に参加してきました

Rails勉強会@東京第60回に参加してきました。学んだことをメモします。 性能プロファイラ 笹田研の学生さんによるリアルタイムプロファイラの紹介がありました。「リアルタイム」なのが特徴です。rdocを実行してそのプロファイラをざーっと画面に出してデモ…

Rails2.3.10 に i18n を 文字コード EUC-JP で導入するメモ

i18n を 文字コード EUC-JP で Rails2.3.10 に導入するメモです。 実験環境 OS CentOS release 5.3 (Final) Ruby ruby 1.8.6 (2010-02-05 patchlevel 399) [i686-linux Rails Rails 2.3.10 i18n 0.5.0 文字コード EUC Rails2.3.10のデフォルトエラーメッセー…

Rails2.3.10でrender_componentを使う

Rails2.3.10でrender_componentを使いたい。こちらには下記のように書いてある。 render_component goes from “deprecated” to “nonexistent” in Rails 2.3. If you still need it, you can install the render_component plugin. install % script/plugin i…

Rails勉強会@東京第58回に参加してきました

勉強会の流れはRails勉強会@東京第58回を見て頂ければ書いてあります。つらつらと、メモしたことを書いていきます。 RSpec テストが英語っぽく書けて読みやすい Relishを見ると、RSpecの使い方はだいたい分かるよ Matchersいいよ 必要なところの近くにある。…

rails -v で Railsのバージョンが分かる仕組み

rails --help を見てみると、-vでバージョンを表示したり、 rails hoge で hogeアプリケーションを作成したり、rails -h でヘルプを表示したりしているのですが、いったいどのようなロジックになっているのか気になったので見てみました。 % rails -v Rails …

vim で Rails開発環境構築 for Linux

Rails開発を vim でやることに決めたものの、経験がないので歴史から学びました。 なお、環境は以下です。 OS $ cat /etc/redhat-release CentOS release 5 (Final) Vim version 7.0.243 目次 vimってなに? vimのインストール 既存インストールの確認 7.0.2…

syslog-ngでrailsのログを集約する方法について

Sysloggerのインストール Sysloggerをインストールする。 sudo gem install SyslogLogger rails側の設定 config/environments/production.rb 以下を追記する。 require 'syslog_logger' RAILS_DEFAULT_LOGGER = SyslogLogger.new "appname" config/environme…

gem install rails -v 1.1.6 で ERROR

バージョンが古い Railsの環境構築しようとしたら・・・ $ sudo gem install -y rails -v 1.1.6 Bulk updating Gem source index for: http://gems.rubyforge.org ERROR: While executing gem ... (Gem::GemNotFoundException) Could not find rails (= 1.1.…

Railsでlightwindow v2.0 を使ってみる

えー。Railsアプリ作るところからやりますw 環境 OS : Windows XP C:\Rails>ruby -v ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32] C:\Rails>rails -v Rails 1.2.3 lightwindow.js v2.0 prototype.js Version: '1.5.1.1' scriptaculous.js v1.7.1_b…

RailsのFilter機能で特定のアクセスをブロック

Filter機能について気づいたこと こちらに、RailsのFilter機能が書かれています。 くまくまーさん++http://wota.jp/ac/?date=0720 「継承時の Filter」の部分で、 Filter を評価した値(戻り値)が false である場合、その時点で Filter の適用は停止され、以…

Railsのroutes.rbを知る

routes.rbを使ってやろうかな?と思う事があったので、routes.rbを触ろうとしたら、 なんとなく知ってるけど、なんとなくじゃ・・・orz ということで知る。 基本 こちらの記事が素晴らしいです。 http://wota.jp/ac/?date=20050725ポイントを列挙してみると …

MySQLで、日付の一部を抽出して、月日だけを見てソートしたい。

what MySQLで、日付の一部を抽出して月日だけを見てソートしたい。 例 以下のデータは、hogeテーブルのbirthdayカラムに保存されている。hogeテーブル id birthday 1 1985-05-02 2 1980-05-03 3 1979-05-01 4 1981-03-15 上記をhogeテーブル id birthday 3 1…

Ruby on Rails ページ内リンク(Link)(ページ内ジャンプ(jump))

ちょっとはまった・・・orz のでメモ。 Railsのヘルパーメソッド(link_to)を使って、ページ内リンクを行う。 ■具体例 <%= link_to "bar",:controller=>"hoge",:action=>"fuga",:anchor => 'foo' %>↓ <a href="/hoge/fuga#foo">bar</a> ■救いの神 Ruby On Rails ページ内ジャンプ - 日記と…

Timeの便利メソッドメモ

Nさんありがとう! irb(main):003:0> Time.now.to_formatted_s(:db) => "2008-01-27 14:05:32" irb(main):004:0>ソースは↓ /usr/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/core_ext/time/conversions.rb ○環境 Ruby 1.8.6 Rails 1.2.3…

英単語の単数形⇒複数形、複数形⇒単数形を調べる

良く忘れてしまうのでメモ。 ●そもそも何で調べる必要があるのか 【RailsのO/Rマッピングでは,「テーブル名はモデル名の複数形にする」と言う命名規約があるから】等、Railsでは、単数形、複数形の英単語を良く使い分けるため。 ●実際に調べましょう active…

Railsでドットが連続3つ(トリプルドット)以上あるメールアドレスでもActionMailer::Base.deliverを利用してメールを送信する

●何がやりたいのか RailsでActionMailer::Base.deliverを利用してメールを送信する場合、以下のようなアドレスは通常送信できないが、送信したい。 TMail 携帯メールアドレス問題 - 基本へ帰ろう←の対応策の一つ。●実験 ・ドットが連続3つ C:\rails_app>ruby…

railsとcron

○何がやりたいのか Railsアプリケーションで、一定間隔で処理を実行したい。 ○プラグイン「rails_cron」を使ってみる なくなってるっぽい(404)・・・orz http://svn.kylemaxwell.com/rails_plugins/rails_cron/trunk/ 何でなくなったんだろう・・。 ○Linuxの…

Railsで携帯メールの添付ファイルをアップロード

今回は携帯メールに添付された画像の受信テストをRailsを行ってみます。http://www.techscore.com/tech/OtherTech/rubyonrails/4.html もともと、やりたいことは↑です。↑を読んでから読むとより理解しやすいと思います。 今回はテストも書いてます。全体の流…

開発環境でSSLを使うために、Webrick SSLをポート443で立ち上げる(Windows XP)

httpsでしか、アクセスできないページを作成しようと、ssl_requirement を使おうと思ったのだが、ローカルでSSL環境を作らないといけない。 そこで、WebrickでSSLをポート443で立ち上げようとしてみたら、 C:\rails_app>ruby script/webrick_ssl -p 443 => B…

Railsプロジェクトを格納したフォルダが日本語だとテストが落ちる??

rails_app_本番 ↑という名前のフォルダに、Railsアプリを格納して、テストを走らせるとなぜかテストができない現象に遭遇しました。 詳しくは、調べませんでしたが、フォルダの名前を英語にしたら直りました。 c:/rails_app_本番>rake ・ ・(途中省略) ・ …

remote_ipをテストする

たとえば、会社のIPアドレスからのみアクセスを許したいページがあるとする。 それは、コントローラーで・コントローラー MY_IP = "xxx.xxx.xxx.xxx" DEVELOPMENT_IP = "127.0.0.1" def check_ip? if request.remote_ip == MY_IP || request.remote_ip == DE…

form_tagで個体識別を聞くようにする

Railsでフォームを書くときには、ヘルパーを利用すると思いますが、通常は、 <% form_tag :action => "complete" do-%> #=> <form action="/complete" method="post">のようになります。携帯電話の個体識別をフォームのアクション時に聞くようにするには、 <form action="/complete" method="post" utn>もしくは <form action="/complete" method="post" utn="utn">とやらないといけません。それを</form></form></form>…

テストの統計

C:\rails_app>rake stats ? (in C:/rails_app/) +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+--…

mail_toメソッドで文字化け

Railsをutf8の環境で作っていて、以下のような現象に遭遇。 <%= mail_to "","てすと",:subject => "あいうえお",:body => "かきくけこ",:encode => "hex" %>これで、クリックすると、タイトル ⇒ 縺ゅ>縺・∴縺 ボディ ⇒ 縺九″縺上¢縺となってしまう。 ○解決 …