Ruby on Rails 3 Tips

代々、Railsでの日本語メールはパッチを当てるか処理を書かないと、普段日本で流通しているメールの形式にはならない。 ようするに、エンコーディングが違うのである。 RailsでActiveMailを使って普通に送信すると、エンコーディングをUTF-8で送信してしまう。 ThunderBirdとかGMailとかだと、その辺を勝手に解釈して正常に表示されてしまうが 日本にはいまだにエンコードがUTF-8では正しく表示されないメーラーがあったりする。 これに対応するには、エンコーディングをUTF-8で ...

MySQL, SQL

MySQLでユーザを削除する手順 権限を削除 REVOKEで、削除したいユーザの権限を削除する REVOKE構文について 参考に、guestユーザの権限を削除する実際の構文は ユーザを削除

AJAX

prototype.jsで、ページが読み込まれた後に発動するイベントを定義する場合 DOMツリーの構築が終わっていても描画が終わっていない場合があるので、このイベント内で$('test').style.height のようなプロパティを見ても0やnullが入っている場合がある。

AJAX

prototype.jsで、エレメントにイベントを設定する このタグにクリックイベントを付ける時は prototype.jsのイベントとして指定出来るイベント ページのイベント load ページが読み込まれた時 dom:loaded ページが読み込まれた時(イメージなどは読み込み完了していなくても発動) ※DOMツリーの構築が終わっていても描画が終わっていない場合があるので、このイベント内で$('test').style.height のようなプロパティを見ても0やnullが入っている場合がある ...

Ruby on Rails メモ

Rails 3からActiveModelが追加されたが、これはどーいうものかというと、 ActiveRecordはテーブルのデータを操作するのに対して ActiveModelはテーブルの存在しないデータを操作するために使用する。 と思う。 ActiveModelの肝は大きくみて4つくらいあるらしい。 アトリビュート コールバック 変更記憶 バリデーション ほかにもいくつか楽しそうな物はあるが、とりあえず、この4つについてREADMEから情報を拾ってみたいと思います。 アトリビュートは、モデル内に ...

Ruby on Rails 3 Tips

AdminUserなんていうクラスがあるとして、 admin_user という文字列を欲しい時に という感じで使う 逆にしたい場合は

Ruby on Rails 3 Tips

複数形で書かれた英語表記の文字列を単数形に変換したい場合、または 単数形を複数形に変換した場合に使用する。 userという文字列がある場合 となる

Ruby on Rails 3 プラグイン

ホームページ github まだタグでv3.0.0正式対応のものがないようなので、preを使う インストール Gemfileに を追加して 実行 使い方 一覧表示アクションの中で、一覧取得の処理を変更 1ページに表示されるデータの件数を設定 Articleモデルに を追加 ページ切り替えのリンクをビューに追加 articles/index.html.erbを開き の行の上あたりに を追加

Ruby on Rails 3 プラグイン

デファクトスタンダードな、Railsのテストツール ホームページ 公式 まだタグでv3.0.0正式対応のものがないようなので、bataを使う インストール Gemfileに を追加して 実行 rspec用タスクを生成 使い方 テスト対象のファイルをとりあえず追加 scaffoldで作成したファイルに対してrspecのファイルを作成 マイグレーション実行 テスト実行 以下のような実行結果がでるはず Startedの下にドット「.」が出るが、これは一つのテストケースを実行して正常に終了したという表示 ...

Ruby on Rails 3 プラグイン

fixtureの代替となるツール ホームページ Github インストール Gemfileに を追加して 実行 使い方 定義 specフォルダの下にfactoriesフォルダを作成 このフォルダの中にrbファイルを作成し、そこにデータのひな形を作成する #spec/factories/users.rb  ひな形を元にデータを作成 連番の付いたデータを作成 まず、factories/users.rbファイルに以下を追加 #spec/factories/users.rb  ひな形 ...

Ruby on Rails 3 プラグイン

DeviseはWardenに基づくRailsのフレキシブルな認証プラグインです。 特徴は Rackベース Railsエンジンに基づく完全なMVC 複数ロール(複数テーブル)が可能 モジュール方式概念に基づいている ホームページ Github インストール Gemfileに を追加して 実行 使い方 deviseを使用するために必要な最低限のファイルをインストールする モデルを作成する マイグレーション実行 Homeコントローラを追加(トップページのつもり) home_controller.rbに ...

Ruby on Rails 3 プラグイン

認証処理 openIDとかLDAPとかと連携して認証するためのプラグインが存在する ホームページ Github Rails 3 に対応していないようなので、フォークの中からRails 3 対応中の物を探す 新しい物が良いな~と言うことで、 あたりが良いか? だが、安定して使える物を探す必要はある。 オリジナルがRails 3 に対応すれば、それを使いたい。 インストール Gemfileに を追加して 実行 セッションモデルを追加 ユーザモデルを追加 ユーザテーブルのマイグレーションファイルを修正 ...

Ruby on Rails 3 Tips

Rails 3 になってから、content_forの挙動が少し変わった。 Rails 2までの動きだと という感じでタイトルを各ビューごとに変更するような作りの場合 レイアウトのhtml.erbでは、 とやると、各ビューの方でcontent_for指定しなかった場合にyield(:title)がnilになるので「デフォルトのトップページ」というタイトルになるのだが Rails 3 では、ここでyield(:title)の結果が空文字で返されるため、タイトルが設定されなくなる。 yield(:t ...

Ruby on Rails 3 Tips

Rails2.3あたり?(もうちょっと前かな?)からhelperはデフォルトで全部読み込むようになってまった。 別のコントローラのhelperも呼んでしまうので、同じメソッドが定義してあると、どれが呼ばれるかくわからなくなる。 Rails 3.0では、Application::Baseで読み込んでしまうので、 これを解除するにはアプリケーションコントローラに #app/controller/application_controller.rb を追加する

JasperReports

JasperReportsで複数のテンプレートを結合してPDFを出力する際に、最初に思いつくのはaddPageメソッドでページを追加してい くという方法だが、この方法だと用紙サイズ、用紙方向などが最初の用紙の設定でページが追加されるようで追加したページの設定が良くない。 そこで、少し面倒だが、各用紙の設定を維持したまま単一のPDF出力が出来るようにする 具体的には、JasperReportsのクラス で「JRPdfExporter」というのがあり、このクラスを使ってPDFを出力する

JasperReports

Railsをpassengerで動かしている時に、RJBでJavaのライブラリJasperReportsを呼び出そうとすると うまくいかなかった。 なので、一つの解決法としてJasperReportsの呼び出し部分をRailsとは切り離す仕組みとしてDRubyを採用する。 サンプルは別途リンクを張りますが、ここでは主要なソースのみ書き出します。 まずは、実際にPDFを作成する部分から gen/WritePdf.java: このJavaのメソッド「runTest」をrubyから呼び出します。 つづ ...

JasperReports, PC関連

JasperReportsで複数の帳票を結合してPDF出力する