Ruby On Rails

Index

IndexRuby On Railsを利用した開発の記録をまとめたIndexページです。 Ruby On Railsのバージョンは2.0.2です。 まだまだ未熟なのでたまに間違ってるかもしれないですが コメントにて突っ込みいただけると助かります。また、Ruby仲間も募集中なので是非是非…

Links

Linksよく参考にするサイトを紹介します。 Ruby ■API RDoc(英語) http://www.ruby-doc.org/core/ ■リファレンス Rubyリファレンスマニュアル http://www.ruby-lang.org/ja/man/html/Ruby_A5EAA5D5A5A1A5ECA5F3A5B9A5DEA5CBA5E5A5A2A5EB.html Rubyリファレ…

Modelクラスのカラムフィールドアクセス

INDEX PAGE Modelクラスのカラムフィールドアクセス Railsも使い込んでくると、コントローラー間で共通の処理を なるべくModelクラスのほうに定義して共通化を図りたくなります。 その時に一箇所落とし穴があるので共有までに。 例えば画面からhogeという入…

require_dependencyとrequireの違い

INDEX PAGErequire_dependencyとrequireの違い 色々なソースの中でrequire_dependencyというのがでてくるが いったいどういう意味なのかよく理解できずに利用していました。自分でかいたことはほぼないのですが そろそろまじめに調べてみようと思いソースを…

link_to、url_forでアンカーリンクを作る

INDEX PAGE 例えば「http://hoge/hogehoge/index#fuga」というような アンカーリンクを作成したいときに Railsでどう書けばよいのかという話しです。link_to、url_forのソースを読めばわかりますが、 下記のように書くとそういうURLが出力されます。 '/hogeh…

Railsでシステムカラムを用意する

INDEX PAGE Railsでシステムカラムを用意する 業務系のシステムでは、システムカラムなるものを用意している場合が多いです。 良く見られるのはこんなカラム。 ・作成日時:レコードを作製した日時 ・作成ユーザーID:レコードを作製したシステム上のユーザ…

ERBを部品化する

INDEX PAGE ERBを部品化する 以前、HTMLソースをINCLUDEする方法を開発してみましたが (静的なHtmlをインクルードする) 今回はERBをインクルードする方法です。入力フォームや、エラー表示の出力を行う為に、ERBの中で 'form', :locals => { :form => form…

FireFoxでActionController::InvalidAuthenticityToken

INDEX PAGEFireFoxでActionController::InvalidAuthenticityToken Rails2.0移行ではデフォルトでセッションがCookieとなったことから CSRF対策がデフォルトで行われています。 get以外のリクエストについて、チェックを行っています。 具体的には"form_for"…

ドメインの異なるサイトでセッションを共有する

INDEX PAGEドメインの異なるサイトでセッションを共有する Railsの1.2移行では、セッションはデフォルトではCookieを使用しているので サーバーが分散していてもセッション共有することができます。※携帯サイトなどでは方式を検討する必要がありますが。さて…

erbの中で別のerbをincludeする

INDEX PAGE erbの中で別のerbをincludeする erbでは、他の画面と共通利用したいような部品があります。 (1)ページヘッターやページフッターのような全画面共通の部品 ↓こういうやつですね。 (2)入力フォームなど (3)検索結果などのスプレッドシート(1)は 'xx…

ActionMailerでエラーをハンドリングする

INDEX PAGE ActionMailerでエラーをハンドリングする LoginEngineのメール通知機能をいじる中でActionMilerを設定しました。 当初あまりちゃんと設定しなくても、メールが送信できて喜んでいたのですが 少し動かしていくうちに色々はまりました。ActionMaile…

と、と

INDEX PAGE と、とRailsをはじめた当初、サンプルソースなどを見ると と、色々な書き方があって、何が正しいのか良くわからない状況でした。一応、それぞれの違いをまとめておきます。 とERB又はRHTMLの中で、Rubyのロジックを埋めたい時にはを利用するのが…

Railsのコントローラークラスでsendというメソッドを定義する

INDEX PAGERailsのコントローラークラスでsendというメソッドを定義する Railsにおいて、コントローラーにsendというメソッドを定義すると 下記のようなエラーが発生します。 /!\ FAILSAFE /!\ Wed Jul 30 21:51:33 +0900 2008 Status: 500 Internal Server …

RailsでCSV出力処理を実装する

INDEX PAGERailsでCSV出力処理を実装する Railsでデータのエクスポート処理を作ろうとして CSVの出力共通関数を作ろうとしたのですが Railsには既に便利なCSV出力機能が備わっていました。 CSV::Writerというライブラリを利用すると便利です。 http://www.sa…

トラックバック機能を作る

INDEX PAGEトラックバック機能とは トラックバック機能を作ってみました。 一応、そもそもトラックバック機能とはというところから説明します。 トラックバックはブログなど外部サイトから 自分を参照するときに、参照することを連絡してもらう機能です。 下…

エラー画面、エラー処理

INDEX PAGEエラー画面、エラー処理 Webアプリ上でエラーが発生した場合の処理方法ですが 例えばJsp/Servletの場合には、エラーを呼び出し元にスローしていき 最終的に一番呼び出しもとのプログラムで例外をキャッチし エラー画面にリダイレクトするという流…

ページ切替用プラグインPaginateを使う

INDEX PAGE ページ切替用プラグインPaginateを使う Rail用ページングプラグインWillPageNateを利用して 実際にページ切替機能を実装してみます。 まずはコントローラーですが 通常下記のように @hoge = Hoge.find(:all) ActiveRecordのfindを利用する箇所を…

改行を表現する

INDEX PAGE 改行を表現する Railsでテキストフィールドなどで入力した情報は データベースに改行コード付で格納されるようです。しかし、これを取得して画面に表示したときに HTMLでは改行コードを無視するので改行なしで表示されてしまいます。 例えば - ho…

RailsのControllerをフォルダ分けする

INDEX PAGERailsのControllerをフォルダ分けする 一応書いておく程度の共有です。 ある程度の規模のシステムを開発すると コントローラーだらけになってしまい 管理のためにもコントローラーをフォルダ分けしたいと感じます。 Railsでコントローラーをフォル…

Webサーバ起動時のrequireのエラー

INDEX PAGEWebサーバ起動時のrequireのエラー Webサーバ起動時にrequireのファイルが存在しない場合などに下記のエラーがでます。。 ** Starting Mongrel listening at 127.0.0.1:3002 ** Starting Rails with development environment... Exiting c:/ruby/l…

リンク用ボタンを作る

INDEX PAGE リンク用ボタンを作る Rubyには日付形式の入力をサポートする各種フォームがあります。 下にまとめてみます。 機能 記述方法 備考 リンク link_to イメージ image_tag フォーム form_tag →テキストボックス text_field →テキストエリア text_area…

静的なHtmlをインクルードする

INDEX PAGE 静的なHtmlをインクルードする Rubyではrenderを利用すると別ファイルのrhtmlやerbをインクルードすることができます。 'form', :locals => { :form => form} %> このようにすることで"_form.rhtml"をこの部分にインクルードしてくれます。 しか…

Rails用グラフプラグインGruffを使ってみる

INDEX PAGE Rails用グラフプラグインGruffを使ってみる Gruffの導入については前回レポートしましたが 今回は実際に使ってみることにしました。 公式HPは下記にあります。 http://nubyonrails.com/pages/gruff また、APIは下記においてあります。 http://gru…

Rails用グラフプラグインGruffの導入

INDEX PAGE Rails用グラフプラグインGruffの導入 Railsでグラフを表示したくなりGruff用のプラグインを入れることにしました。 Ruby On RailsによるWebアプリケーションスーパーサンプル(http://www.amazon.co.jp/dp/4797341882) を読んだところ、「Gruff」…

複数の更新系処理を同時にCOMMITする

INDEX PAGE複数の更新系処理を同時にCOMMITする 一つのアクションの中で、複数の更新処理を行う場合があります。 ショッピングサイトでは、買い上げと同時に在庫を減らすと思います。 この時、売上が成功したのに在庫更新処理でエラーが発生すると 在庫の数…

Railsで集計処理を実装

INDEX PAGERailsで集計処理を実装 蓄積したデータの合計や平均などを求めたいなどというとき SQLで「Group By」を使用しますが Railsではこのような場合にはActiveRecord::Calculationsを利用するようです。 http://api.rubyonrails.org/classes/ActiveRecor…

ActiveRecordのModelクラスとエンティティ名の関係を自由に設定したい

INDEX PAGE ActiveRecordのModelクラスとエンティティ名の関係を自由に設定したい RailsではジェネレーターによってModelクラスを自動生成でき テーブル名の複数形のModelクラスがデータベースのエンティティと対応するという 暗黙のルールが存在します。し…

DATE_SELECTをCHAR型のカラムに対応させる

INDEX PAGE DATE_SELECTをCHAR型のカラムに対応させる Rubyには日付形式の入力フォームをサポートする date_selectという機能が存在します。こちら年・月・日を別々のプルダウンで表現してくれて便利な機能です。 ERBファイルの中に下のように書き込んで利用…

(続)Ruby On RailsにLoginEngineのソースを直しました

INDEX PAGE(続)Ruby On RailsにLoginEngineのソースを直しました 実は続きがありました。LoginEngineではWebページにリクエストがあったときに 一旦リクエストのURLをセッションに格納して ログインページに飛ばした後に、 ログインに成功すると、セッション…

バージョンアップ Rails2.0.1→2.1.0

INDEX PAGE バージョンアップ Rails2.0.1→2.1.0 Railsがバージョンアップされたそうです。http://itpro.nikkeibp.co.jp/article/NEWS/20080602/305646/これを当てたら動かなくなるソースとかあるのかなと ちょっとおっかなびっくりしましたが アップデートを…