Rails

undefined method `class_inheritable_accessor'

最近、ほとんどRailsに触っていないことに気がつき、なおかつRails3に触ってなかったことにも気がついたので、感触をつかむ第一歩として前に作っていたRails2のコードをRails3に移植している最中、表題のエラーがでたので対応した際のメモを残しておこうかと…

ActionMailerでSTARTTLSを無効に

まぁ無効にしないといけないSMTPサーバーはどうなのか、という話は横に置いておこう。たまに開発環境用のやつで、しがらみにより手を入れられないやつもあったりするので。ActionMailer::Base.smtp_settingsに :enable_starttls_auto というのがあって、こい…

ar_fixtureのbinary対策

ar_fixtureプラグインは、マルチバイトの文字列をことごとくbase64化してしまうので、とても見づらいものができてしまう。String#is_binary_data?を上書きするとかの手はあるけど、ここは簡単にコンバーターを。 require 'base64' b64 = nil ARGF.each_line …

ソース見たいときのシェル関数

どうやら、いつもRailsのドキュメントを読まずにソースコードを眺めつつコードを書いているようで、Railsのソースコードへの移動が面倒になっている。少し移動が便利になるようシェル関数を書いたので、張り付けておこう。 rj() { gemdir=${GEM_HOME:-`ruby …

DBのレコードをfixtureに落とす場合

以前はARFixtureを使った上でdb:fixtures:save(via 舞波本)を書いていたけれど、先日adamwiggins/yaml_db · GitHubの存在に気がついた。インストール後、 いきなり rake db:dump, rake db:load で済んでしまうのでかなり楽。

Fixtureの書き方メモ

Railsのテストではテストデータの管理(Fixture)としてYAMLを使える。以前「YAMLだと表っぽく書けないなぁ」と思っていたのだけど、それっぽくできることに気がついたのでメモ。http://yaml.org/spec/1.2/ の「7.4. Flow Collection Styles」より cd1: acco…

tableタグに含まれている複数レコードの中から1レコードをAjaxで更新する場合のメモ

なんだか毎回迷ってしまうのでメモ <table class="content-table"> <tr> <th>Name</th> <th>Safe</th> <th>Memo</th> </tr> <% for program in @programs %> <tr id="<%= program.id %>"> <td><%=h program.name %></td> <td><%= check_box_tag 'program[safe]', '1', program.safe %></td> <td><%= text_field_tag 'program[memo]', progra…</td></tr></table>

funcionalとunit testが必須な体になってきた

かみさんから自宅用の家計簿ソフトの仕様変更が舞い込んでくるので、毎日この時間はガリガリRailsのコードを書いているのだけど、何気に集計ロジックとかが込み入っているので、funcionalとunit testは必須な状態になっている。ちなみにテストにたいする気持…

モデルとコントローラーのCRUD

会社でRails Way (Professional Ruby Series)を読んでいて、むむっと思ったのでメモ。 アクションの命名原理としてのCRUDと、実際のデータベース操作としてのCRUDが互いに無関係に存在する可能性があることと、Railsのリソース処理機能が対応するモデルのな…

リバースプロキシでの環境変数REMOTE_USER渡し

意外な落とし穴が。リバースプロキシしたRailsアプリの一つでは、手抜きでBasic認証の環境変数REMOTE_USERを利用しているのですが、Mongrelでは認証出来なさそうだったので、Apacheに認証させるようにしました。すると、当然のごとくRailsにはCGI環境変数のR…

複数Railsに対してリバースプロキシ&アクセス制御

やっとできた。LighttpdとMongrel(あとWebrick)しか使ってないので他のWebサーバーはよく分からないのですが、Apacheから複数Railsに対してリバースプロキシする際はMongrelが抜群に楽でした。 というのも、mongrel_railsのprefixオプションでURLのディレ…

テスト

500 Internal Server Error 自分がなぜテストを書かないのかを徒然と自問自答してみがーん、ショック。書いてなかったのか…。Ruby on Rails入門―優しいRailsの育て方作者: 西和則出版社/メーカー: 秀和システム発売日: 2006/08メディア: 単行本購入: 2人 ク…

ネストしたコントローラ

jijixi's diary - ライドバック 1-8 巻を衝動買いしてしまった件 , PolymorphicRoutes , デビサバ日記、悪魔合体 , デビサバ日記、エクストラター.. いつのまにこんな機能が。 すごい便利だけど知らない人がみたら混乱するよなぁ…

vim-railsを使うためメモ

$ sudo aptitude install vim-addon-manager $ sudo aptitude install vim-rails $ vim-addons install vim-rails

Ruby1.8.7でacts_as_attachmentするとエラーに

昨日から自宅サーバで動かしているRailsを引越ししているのだけれども、Ruby1.8.6環境では動作していたのに1.8.7だとエラーになった。こんなかんじでacts_as_attachmentしていて。 class Photo < ActiveRecord::Base acts_as_attachment :storage => :file_s…

プラグインをRubyForgeにあげてみた

小品をRubyForgeに上げてみました。MITライセンスでおけ、とのこと。 シンプルなヘルプ画面作成支援ヘルパーです。http://rubyforge.org/projects/helplet/簡単な使い方… script/plugin install http://helplet.rubyforge.org/svn script/generate helplet r…

JSONの扱いメモ

#下記、必要に応じてエスケープ要。Rails => JavaScript respond_to do |format| format.html { render :text => res.to_json } でJSON化しておいて(render :json => resでも良い?)、 <script type="text/javascript"> $(function() { var qs = eval("<%= @questions.to_json.gsub(/\"/,…

RailsのERBファイルを評価して文字列を取得したい場合

Railsメソッド満載のERBファイルを評価して、評価結果の文字列が欲しかった(こいつをAjaxの戻り値にしたかったので)のだけど、render :fileとすると、その後のrender :updateでダブル何とか例外が発生してしまう。かといってERBクラスを直接使うと、Railsの…

restful_authenticationメモ

1. install script/plugin install http://elitists.textdriven.com/svn/plugins/acts_as_state_machine/trunk script/plugin install restful_authentication 2. generate script/generate authenticated user sessions --statefulメールによるactivationを…

will_paginateメモ

1. install gemなら gem install will_paginatepluginなら(2009-01-03: Modified.) script/plugin install svn://errtheblog.com/svn/plugins/will_paginate ← not recommended. script/plugin install git://github.com/mislav/will_paginate.git2. app/con…

「実践Rails」読み中

実践 Rails ―強力なWebアプリケーションをすばやく構築するテクニック作者: Brad Ediger,株式会社クイープ出版社/メーカー: オライリージャパン発売日: 2008/10/27メディア: 大型本購入: 7人 クリック: 90回この商品を含むブログ (43件) を見るちょうど買お…

rakeタスクでActiveRecordを使うメモ

rakeタスクの中でARを使う場合には、「task :taskname => :environment」が必要みたいだったのでメモ。 namespace :hoge do task :setup => :environment do p User.count end end

BackgrounDRbとGetTextでARのカラムが日本語化されない件#2

直ったみたい。BackgrounDRbのworker側では、module GetTextのクラス変数@@__textdomainmanagersにActiveRecord::BaseやActiveRecord::Validationsが含まれていなかった(script/consoleとかから起動すると含まれている)。なので、init_gettextのコードから必…

BackgrounDRbとGetTextでARのカラムが日本語化されない件

仕事ではまってたんだけど、解決しなかった… というわけで、とても気になるので自宅サーバで再調査。 追記#1 => Rails2.0だとBgDRbのworker内で、GetText.locale='ja'の上、Member.human_attribute_name('name')とかやっても日本語化されないけれど、Rails2.…

railsが起動しなくなった

以下のエラーをはきまくって起動しなくなってしまった。 Fatal error 'Cannot allocate red zone for initial thread' at line 384 in file /usr/src/lib/libthr/thread/thr_init.c (errno = 12)どうやらlibpthreadをリンクしている古いバイナリが、何の因果…

「REXMLのDoS脆弱性」が恐ろしい件

を見ていたら、 「あーそうなんだ、でもうちの Rails のサービスじゃ REXML でパースする処理なんて書いてないから別にいいや」とか思っている方、大変危険です。 おれのことですね。わかります。 ということで、いい機会なのでhttpclientをgem installして…

引越しのタスクをRedMineで管理

実は9月から新しい職場になるのですが、これを機に新職場近辺に引越しをすることになりました。新居(賃貸)は何とか見つけたので後は本契約を残すのみです。ということで、今月半ばの引越しに向け気もそぞろ。Ocamlをもう少し弄ったりしたいけど、引越しが落…

[linux] ubuntuにrails & sqlite3-rubyを入れたメモ

なんか面倒だったのでメモ(ついでにrailsから) sudo gem install rails -y sudo aptitude install sqlite3 sudo aptitude install ruby1.8-dev sudo aptitude install libsqlite3-ruby sudo aptitude install libsqlite3-devもしかしたらlibsqlite3-rubyは…

text_fieldのvalue(datetime)のフォーマット

<% @journal.datetime = Time.now unless @journal.datetime %> <%= text_field 'journal', "datetime" %></p> こんなviewを書いて@journal.datetime有り/無しを試してみると。 あり 2007-11-01 00:00:00 なし Sat Dec 08 23:43:40 +0900 2007ちなみに、debugで…

画像サイズ調節

FreeBSD上でのImageMagickの調子がすこぶる悪く、RMagickも動かないので、代替案をさがしていたのですが、Railsで画像サイズを"簡単に"操る(Image Size in Rails) - 京の路さんのところでimage_sizeというRAAを知りました。更にサンプルコードも参考に… あ…