rails

Radiant をインストール

バージョンは0.8.1です。 rake -T で失敗 いきなりこんなところで躓きました。gemでcucumberがインストールされていると、 $ rake -T --trace (in ****) rake aborted! undefined method `feature_pattern=' for #<Cucumber::Rake::Task:0x182e320> /opt/local/lib/ruby/gems/1.8/gems/radian</cucumber::rake::task:0x182e320>…

Module#unloadableメソッド

developmentモードで動かすと、自作pluginのviewに対してアクセスすると初回は問題ないが、2度目にアクセスすると A copy of ApplicationController has been removed from the module tree but is still active! などというメッセージとともにArgumentError…

gemcutterの設定をするcapistranoのタスク

gemcutterにgemを移したことで、そのgemを使えるようにデプロイ先のgemコマンドでgemcutterを使えるようにするためのタスクと、デプロイとは無関係にrake gems:install を実行するタスクを書きました。 cap gems:gemcutterでgemcutterの設定を行って、 cap g…

submoduleを使ってるプロジェクトのconfig/deploy.rb

gitのsubmoduleを使っているプロジェクトをCapistranoでデプロイしようとすると、submoduleで参照している部分は取得されないので、load_missing_constantとかの実行時にエラーになります。なので、submoduleも取ってきてねと設定する必要があります。http:/…

えせMVC?

[Ruby on Railsの「えせMVC」の弊害] というエントリが話題になっているので釣られてみます。 http://satoshi.blogs.com/life/2009/10/rails_mvc.html MVC まず結論から。Railsが本当にMVCかどうかですが、僕は真っ当なMVCだと思います。 MVCが指すもの 例の…

userstampプラグイン

ちょっと今更な感じもしますが、登録/更新したユーザーのIDを自動的に記録をするためのuserstampプラグイン( http://github.com/delynn/userstamp )を実際に仕事で使いたいなーと思ったんですが、モデルに一つ一つメソッドを記述しないくてはいけなかったの…

oktopartial リリース

最近、Webデザイナーさんと一緒に作業するやり方とか、CMSとかにあったらいいなーとかいう機能をごちゃごちゃと考えていたら、JSで色々埋め込んじゃえばいいんじゃねーの?partialとかレイアウトとか作り易くなりそうだし、とか思って勢いでがーっと作ってし…

schema_commentsアップデート

マイグレーションで、テーブルやカラムにコメントを記述することによって、db/schema.rbをテーブル定義書のようにしちゃうプラグインschema_commentsですが、テーブル、カラムのコメントをI18n用のYAMLにコメントを反映できるrakeタスクを追加しました。 htt…

モデルのdeep copy

シリアライズしてデシリアライズすればいいじゃんと思って、まずMarshalを使ってみる。 obj2 = Marshal.load(Marshal.dump(obj1)) しかし、これだとobj2のidもobj1のidが復元されてしまう。というわけでこれはパス。 次、activerecord-2.3.2/lib/active_reco…

authlogicのspec

昨日公開したauthlogicのサンプルに sessions_controllerのspecを書いてみました。 http://github.com/akm/authlogic_sample/tree/mastersessionsコントローラのspecはこちら。 http://github.com/akm/authlogic_sample/blob/87883d7c13781ed86988c69569cc87…

Authlogicのその他の機能

Authlogicには色んな機能が設定可能。細かいところはrdocに書いてあります。http://rdoc.info/projects/binarylogic/authlogic Want to use another encryption algorithm, such as BCrypt? See Authlogic::ActsAsAuthentic::Password::Config 別の暗号化ア…

authlogic

http://github.com/akm/authlogic_sample/tree/master にauthlogicをセットアップしてみたプロジェクトを作りました。基本、http://github.com/binarylogic/authlogic_example/tree/master にある手順通りにやればオッケーです。user_sessionsコントローラは…

schema_comments で rake db:annotate

あしたのRBCの2周年総会の交流会で時間があったら喋ろーと思って、自作のプラグインの資料を作ってたら、M島さんにannotate_modelsの機能があったらいい感じ!とアドバイスを頂いたので、がっつりパクってみましたw http://github.com/akm/schema_comments…

accepts_nested_attributes_forの:allow_destroyオプション

accepts_nested_attributes_forメソッドはRails2.3からの新機能、nested_formを実現するためにactiverecordに追加されたメソッドです。例えば、 class Member < ActiveRecord::Base has_many :posts accepts_nested_attributes_for :posts end というモデル…

schema_comments

マイグレーションで、テーブルやカラムにコメントを記述できるようにするプラグインschema_commentsを更新しました。 http://github.com/akm/schema_comments/tree/master今回の更新で、コメントをYAMLに保存するようになりました。 また、MySQLのビューに対…

プラグインのREADME書きました。

一緒に仕事した方にはこんなのあるよと話してきたんですが、ちょっと説明する機会がありそうなので、READMEを書きました。 僕(と僕が参加した開発チーム)は実際にこれらを使用しています。よかったら使ってみて是非ご意見を効かせてください。 selectable_at…

DBをブランチ毎に切り替える

config/database.yml でERBを使えば結構簡単。 <% milestone = (`LANG=C; git status` =~ /On branch local_branch_200906/) ? '_200906' : '' %> common: &common adapter: mysql encoding: utf8 username: root password: socket: /opt/local/var/run/mysq…

Railsによる開発のよくある?話 その2

Railsで開発したことのある人でも結構あるパターン? コマンドをよく知らない IDEとかでもrakeのタスクが呼び出せたり一覧が見えたりしますが、これはIDEがそのコマンド群に対応しているからであって、もしかしたらIDEは新しいコマンドには対応していないこ…

Railsによる開発のよくある?話 その1 開発以前

軽いプロジェクトをRailsでやってみたいというお話をたまに聞きます。で、いざやろうとすると結構色々なところで躓くことが多いので、ちょっと思い当たることを書いていきます。僕は基本的にコードを書く役割なので偏ってると思いますが、ご容赦を。 トップ…

rhtml_to_html_erb.rb git対応

以前作ったスクリプトをgit対応にしてみました。

mode_proxy_balancerとかの設定

もうあまり考えることなく、設定すりゃいいやって思ってたんだけど、意外にハマりました。 AddOutputFilterByType DEFLATE text/html text/plain text/xml NameVirtualHost *:80 <VirtualHost *:80> ServerName www.ホスト名 ServerAdmin webmaster@localhost RequestHeader se</virtualhost>…

attachment_fu

簡単に画像を扱えるプラグイン。プラグイン自身のインストールは超簡単。 $ script/plugin install http://svn.techno-weenie.net/projects/plugins/attachment_fu/ でサムネイルを作るにはprocessorを使えるようにする必要があるんだけど、インストール時の…

sqlite3用の設定

今回はSQlite3をつかうアプリなので、以下の記述を config/deploy.rb に追加します。 # config/database.ymlはsvnにコミットしません。 # ですので、サーバー側のshared以下にdatabase.yamlを保持するディレクトリを作成し、 # デプロイ時に config/database…

capistranoでの初めてのアクセス

デプロイ用のユーザーもできたので、railsのプロジェクトをcapifyして接続をテストします。 $ cd /path/to/rails/project $ capify .で、config/deploy.rb が作られているはずなので、それをこんな感じにします。 # -*- coding: utf-8 -*- require 'mongrel_…

mongrelを起動するユーザー

個人プロジェクトなら自分のアカウントでmongrelを動かせばいいんだけど、チームでとなるとそれはやらない方がいいので、mongrelを動かすプロジェクトで共通のアカウントを作ります。 $ sudo -m -p "" bar $ su - bar $ passwdで適切なパスワードを設定しま…

CentOS 5.2 で railsをインストールするまで

入っていたRubyは1.8.5なので、1.8.7をインストールします。RubyGemsも入ってないのでインストール。 http://www.takuto.biz/private/memo/changelog/2008-07-13.html を参考にやります。 $ sudo yum install gcc* compat-gcc* compat-lib* $ sudo yum group…

RailsでLightWindowを使う方法

How to use the ScriptFirstly we need to include our required javascript and css files in our page like so: お手軽にギャラリーを作れるjsを http://f32.aaa.livedoor.jp/~azusa/index.php?t=ajax&p=prototype_plugin_imagegallery で探して、LightWin…

JamisBuckさん

But I’m burning out, and I have to drop these before things get worse. Maybe after some period of time I’ll come back to them―I don’t know. But I’m not planning on it. Capistranoの作者の方が、もう無理ってことで、CapistranoやNet::SSHの開発…

emacs-rails with RSpec

rspecのspecファイルにジャンプできるように本家のemacs-railsに https://gist.github.com/13345/54c4d9001c42e125b4320e238d77090a8064a9fa のパッチを当ててみました。 最近、本格的に仕事でRSpecを使いだしたんですけど、普通のemacs-railsはrspecはサポ…

Rails2.2.xのリソースの翻訳

は基本YAMLで書く必要がありますが、実際翻訳者の人にYAMLのインデントを崩さないで、コロンの後は必ずスペース1つ、という制約を守ってもらうのは正直厳しいと思っています。きっとできることはiniファイルくらいの簡単さ「コロンで区切る」くらいかなと思…