rails

ActionMailerで添付ファイルを送信する

bodyとか記述するさいに attachment :content_type => "application/zip", :body => File.read(filename), :filename => File.basename(filename) で添付できた。メモ。

ソースコードを1行毎にQRコードにするRailsアプリ作ったよー

何を言っているかわかりませんが私も何を言っているか分かりません。 先日、skypeにて同僚のSさんからこんな事言われました。 「zenpou さん acts_as_searchable に create_index を追加してあるプロジェクトのリポジトリの場所おしえてください」 acts_as_s…

multipartで大量のパラメータを送るとToo many open filesになる

メモ。 CSVアップロード機能作ってたら、確認画面から登録に行く時もmultipartにしてたら /!\ FAILSAFE /!\ 2008/12/10 Status: 500 Internal Server Error Too many open files - /tmp/CGI20081210-13095-mexwa0-0 /usr/lib/ruby/1.8/tempfile.rb:61:in `in…

railroadで、サブディレクトリ切ってると解析してくれない不具合

最近、generateされなくて、推奨されてない方法だったんだ。*1ってわかったんですが、 rails1.2系の頃、controllersに、「manage/account_controller.rb」とか作って 管理画面は、全部manage配下に作ったりって言う方法でrailsプロジェクトが作られてました…

railsのソースコードを解説した、rails解体新書みたいな本がほすぃ

メモメモ。

acts_as_searchableのhyperestraierで使う標準ポートは1978

acts_as_searchableをfind並みに使い倒す。 - zenpouの日記とかで書いて以来たまに使ってるけど 久しぶりに使う時ポート番号検索して2回さまよったことがあるのでメモ

postgresqlを使ってbinary保存時にデータが壊れる不具合

Rails2.1を使っているプロジェクトで、画像をmulutipart使って、 binary宣言したcolumnを持つmodelに保存しているのですが、 そこで、postgresqlのアダプタのエスケープ処理により、ファイルのデータが 壊れる現象が発生しました。 ここに情報があった。 既…

acts_as_authenticatedのバグ

diff vendor/plugins/acts_as_authenticated/generators/authenticated/templates/functional_test.rb ./functional_test.rb 103c103 < <%= table_name %>(:quentin).update_attribute :remember_token_expires_at, 5.minutes.ago --- > users(:quentin).upd…

cmsのアプリを作ろうとしてスタートアップにやったこと

cmsのアプリをsvnserverの/svn/cmsって所で管理する処理でやったことまとめ。 mkdir -p cms/{trunk,tags,branches} cd cms svn import . http://svnserver/svn/cms -m 'initial' cd .. rm cms -fr rails cms cd cms svn import . http://svnserver/svn/cms/t…

ActiveRecordで特定のカラムのエラーがあるかチェックする

@model.valid?ってやった@modelのエラーは@model.errorsに格納されているので @model.errors.on(:name)ってやると:nameに関するエラーがある場合、そのメッセージを。 無い場合はnilを返してくれる。

railsのpublicのみとviewsのみの速度比較

総合時間 1秒間の処理数 1リクエストの平均時間 thinでpublicに配置した場合 6.86351 1643.02 60.864 thinのapp/viewsに配置した場合 17.181393 582.03 171.814

携帯電話に絵文字入りメールをRailsから送信する。

本日、jpmobileを使って、絵文字入りのmailを携帯に対して送りたいと言う話がきました。 と言うわけで、Railsで絵文字入りメールを送る方法: ぐうたら技術屋のTipsを参照して モジュールを作ってみた。 ActionMailer::Baseを上書きする。 class ActionMailer…

apacheでmod_proxy_balancerで、mognrel再起動したらしばらくつながらない問題の解決方法

Apacheのmod_proxy_balancerを使うときはretryを設定すべき - 射撃しつつ前転 こちらに書いてあった。 今作っているサービスは、Apacheのmod_proxy_balancerを使ってロードバランシングしている。しかし、バックエンドのサービスサーバを一旦落としてから復…

OSXでpassengerを設定すると途中で落ちる

速度比較のエントリで実はpassengerも検証しようと思ってたんですが、 OSX上でpassengerを設定したところ、 Internal Server ErrorThe server encountered an internal error or misconfiguration and was unable to complete your request.Please contact t…

apacheとthinとmongrelを速度比較してみた。

明日のセミナーに向けて、 セミナー用の資料作ってた時、ついでにパフォーマンスチェックをおこなってみた。 Apache2.2に静的ファイルをおいたのと、thinのpublicに静的ファイルをおいた場合と mongrelに静的ファイルをおいた場合。 さらにapp/views/portal/…

思いつき。ジャーナル作成プラグインとかどうか。

業務システム作ってると受注データとかが編集された時、削除された時などの情報も 履歴として持っておく要件とかがあったりするけどプラグイン化できそうな気がする。 既にあるんだろうか? 覚えてたら暇な時に作ってみよう。

2.1にrspecをインストールしたときrenderで落ちる。

rspecのviewsのテストでrenderしてる所で「wrong number of arguments (3 for 2)」とエラーが出てる。 全部じゃなくて、一部だけ。 どのへんが原因だろうか・・・。 調査中。#=>結果 date_select を自分のモジュールで拡張してた時、引数が違うのが原因だっ…

test/fixtures等でデータを大量に用意する。

test/fixtures/users.yml等に大量のデータを用意したい時って良くありますよね。 fixturesは、普通にerb効くので 以下の様にループで書く事が可能です。 <% 10.times do |idx| %> test_user_<%= idx %> id: <%= idx %> name: test_user_<%= idx %> <% end %>…

ActiveRecordで、全部のモデルのstring型等に共通のvalidateを追加する

postgresでstring型だと255文字までしか入力出来ないので、255文字をMAXとするとか、 コーディング規約で必須になる名称を_nameという名称で統一するとかやりたかったので こんなコード書いた。 module ActiveRecordValidate def after_initialize @@load_va…

ActiveRecordのfindのfind_from_idsについて

あ、find_from_idsってのはUser.find(10)とかidで検索する奴ですね。 ids.size が 0の時はnilを返して欲しい。 具体的には def find_from_ids(ids, options) expects_array = ids.first.kind_of?(Array) return ids.first if expects_array && ids.first.emp…

2chのスレッドをrss化するサイトを作った。

2chRSSメーカー http://2ch2rss.dip.jp/ 2chのスレをいくつかgoogle readerで閲覧したいなーって思ったので、作ってみた。 あまり速度的なことは考えず、とりあえず形だけ作った。 なんだかんだで公開までに2〜3時間もかかってる。

acts_as_searchableのreindex!の高速化

acts_as_searchableのreindex!は非常に重いです。 ソースがこんな感じ def reindex! find(:all).each { |r| r.update_index(true) } end find(:all)とか、平気で実行出来るモデルの様に件数が少ない奴だったらhyperestraierに連動しないですよね。 def reind…

引き続きrails2.1対応とか

rspecで既存プロジェクトのspec通したらundefinend methodなfile_exists?がずらーりと並ぶ件、 gettextが原因だった。 gettextによりActionView::Baseのrender_fileを上書きしてたのが原因。 にょろーん。

Rails2.1でテスト通らないなんて・・・悔しいっ(rails2.0のプロジェクトをrails2.1に移行してみた)

Postgres のアダプターで DROP DATABASE IF EXISTSとかやってるー。 その関係でrake specしたら RuntimeError: ERROR C42601 Msyntax error at or near "EXISTS" P18 Fscan.l L770 Ryyerror: DROP DATABASE IF EXISTS rails_test って怒られちまった。 vendo…

Rails2.1でかわってた

ActionView::Baseのテンプレート呼び出しのメソッドとか色々かわってた。 ライブラリでそこを書き換えてた部分がうごかねー! 残念賞・・・ って思ってたらhttp://d.hatena.ne.jp/solis/20080602/1212402393でも同じメソッドが無いとかかれてる。 active_sca…

Railsのプラグインをはじめて作った

なんか新規案件はじめたいみたいな相談をPMがしてたので、 休日使って形を作って見た。 Railsのプラグイン形式で作る必要あるんだけど、 作った事なかったので良い勉強になった。 ruby script/generate plugin プラグイン名 で作れる事すら知りませんでした。

ActiveHeartでset_field_nameしたカラム名をrailroadで出力する。

昨日のモデル設計時のコーディング規約に書いたけど、 set_field_nameで書いた内容をrailroadで出力するためのパッチ作ってみた。 railroad-0.4.0/lib/railroad/models_diagram.rb 61c61,62 < content_column = a.name --- > content_column = current_class…

モデル設計時の規約を決めた

これまで一緒に仕事をした経験の無い新しいメンバーと一緒に仕事する事になったので、 規約を決定してみた。 とりあえずモデル設計からみんなで取り掛かったので、その時に決めた。 名前は :name, :tel 等、単純にする。モデル名と重複させない。 Railsの規…

and/orによるプログラミング

railsのand/orを使った機能 rubyのand/orは、true,falseじゃなくて、オブジェクトを返すので 利便性が高いという話。

rubyでPasoriから移動ムービーを作る。

Rubyを使ってPaSoRi経由でSuicaの乗車履歴を取得し、GoogleMapsやGoogleEarthで表示する ↑が凄いブックマーク数に。 実際、動かしてる所見てみたけど面白い。 駅の経路情報とかあれば、電車で移動したラインも表現できると楽しいよね。 http://youtube.com/w…