2008-01-01から1ヶ月間の記事一覧

orders

並び順リソースは集合リソースなので:collectionで定義するとよい。

sortable_element

ul/li に使うもんだと思ってたけど、table/tbody にできるんじゃないかと思ってやってみたらできた。IEだとどうなるかはわからない。 <table id="user_profile_items" class="bordered" style="margin: 1em;width: 90%"> <% @items.each do |item| %> <tbody id="<%= "user_profile_item_#{item.id}" %>" style="cursor: move;"> <tr class="<%= cycle("even", "odd") %>"> <%= r…</tr></tbody></table>

RESTful におけるHTMLコンテンツ(!=ドキュメント)のURIとは。。。

ついついこういうことをしたくなります。

RoutesでComponentリクエストを制御する、の結論。

以下はRails 1.2時代でもやっていたけれど、render_component がない 2.0 を見据えていた実装。

Component を実現。

結局、ActionController::Base のClassメソッドである view_paths=(*paths) を使えばよいと。

素朴な疑問。

例えば、MongrelなどでNプロセス立ち上げるとして、Nプロセス間でクラス変数を共有するのはどうしたらいいかな。。。さっと、管理系のページをRESTfulに書き直しているんだけれど、放置していたActionMailer::Base.smtp_settings の同期の問題がもう一回放置…

require_same_role_as(component_page, *filters)

routes.rb をコンポーネント単位で自由に書き換えられるようにしてしまった関係で、http(s)://{domain}[:{port}]/components/{component_name} を含むURIは任意に扱えることができてしまう。つまり(Widgetを作る以外は)普通にRailsのApp開発と変わらない状況…

prototype.js の Ajax.* method

http://d.hatena.ne.jp/yssk22/20080101#1199119523 に関連して。 new Ajax.Updater("hoge", url) はRails 2.0環境のデフォルトセッションストア(Cookie)で動作しなくなる。具体的には ActionController::InvalidAuthenticityToken が発生する。というわけで…

[開発] Pluggable Routing

各 /components//config/routes.rb にルーティングファイルを独立して記述する方法。ちょっと強引だができた。

[開発][Ruby] map.namespace ??

ブロックスコープミスって嵌る。 map.namespace("system") do |map| end map.root :controller => "wj_pages", :action => "show" んで、rake routes mac:trunk yssk22$ rake routes (in /Users/yssk22/project/webjourney/trunk) /selenium/:filename {:act…

RESTful login

ログインする = 有効なログイン済み"カレント"ユーザーを作る ログアウトする = 有効なログイン済み"カレント"ユーザーを削除する # config/routes.rb # -- map.resources :users, :controller => "wj_users", :collection => { :current => :any } do |user…

[開発] RESTful

/pages/{:id} でページに対するアクセス(GET/POST/PUT/DELETE) /pages/{:id}/widgets でインスタンス化された(ページに貼り付けられた)ウィジェットのメタデータに対するアクセス とりあえず、ここまでは完成。方針転換をして、db/migrate に記述したデータ…

RESTful ユーザー登録, パスワードリカバリ

REST本があまり参考にならなかった罠。email や パスワード のような本人確認が必要なリソースを作成する、という点をどうするか?まず登録。 POST /users GET /users/{:id}/registration_prepared GET /users/{:id}/registration_confirmation?key={tempora…

Leopard に update

1ヶ月以上DVDを放置していた気がするけれども、やっとこ導入完了。追加で入れたのはこれ。 ATOK 2007 Firefox iTerm Thunderbird VMware Fusion Carbon Emacs Chicken of the VNC Messenger for Mac (Adium から卒業...) Tiger のときは、初Macだったのでな…

[開発] jsdoc-toolkit が便利すぎる件

http://jsdoctoolkit.org/JavaScript のドキュメント生成ツール。JavaDoc みたいに書くけど、prototype.js の変な?構文まで対応できる。完璧ではないにしろ、コレで十分。

rake test:units completed.

とりあえず rake test:units は完了したので、rake rails:update をかけてboot.rb やほかのJavaScriptなどもアップデートしました。 次はfunctionalなんだけれど、多くの機能はJavaScriptで実装しているから大変なんだな、これが。

[Rails 2.0] Time#to_s(:sym) と Ruby RSS の Time の不整合

こんなところで嵌るとは。Rails 2.0 では Date, Timeのオブジェクトに対してTime#to_s(:db)のような形でデータベースに特化したフォーマットの文字列を取得することができるようになっているようだ。で、これが、RSS::Rss::Channel:Item#date の Timeクラス…

Fixtures as a initial data.

昨日の続きで、Fixtureの問題。どうも、load_fixtures を再定義して、その中で自作でcreate_fixturesをしているのが非常に問題のようで、これを解決するには、fixture.rb を最初から最後まで舐め回す根性が必要そう。 で、ふと思いついたのは、Fixtureって、…

RESTful / map.resources / Atom

せっかくなのでURI関係全見直しをかけると同時に、冗長なコントローラーコードはモデルに持って行く活動。コントローラーのコードをモデルに移すことでテストがしやすくなる、というのもあり。とりあえず、/pages/{action}/{id} ではなく、/pages/{id} でア…

acts_as_tree

これは有名な話。ActiveRecordに入っていたacts_as_*はすべてプラグインとして外に出されているので ruby script/plugin install acts_as_tree のようにして、vendor/plugins に追加する。

gettext/rails が動かない

結論から言うと、Ruby の cgi の仕様と、Rails の cgi の仕様がミスマッチを起こしているようです。Ruby のバージョンアップ(1.8.6-p26以上)をすることで解決できます。Rubyのバージョンアップなんてやだよ!な人は原因に関しては続き参照してしかるべき対処…

BufferedLogger

デフォルトのロギングがrubyのLoggerクラスではなく、ActiveSupport::BufferedLogger クラスに変わっています。

acts_as_taggable :dependent => true が変

これに関しては、:dependent => :destroy に直せばいいんだけれども、script/plugin で入る acts_as_taggable は別物に変わっているような?雰囲気でよくわからない状況に。結局、http://agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids のほ…

session data integrity

environment.rb が変わっています。こんな感じで、config.action_controller.session = {:session_key => .. , :secret => .. } をつけないと怒られます。 characters = ('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a secret = Array.new(48){charac…

あけまして、Rails 2.0 対応

2008年になりました。カウントダウンTVを見ながらコーディングをしつつ年を越えました。とりあえず昨年の積み残しで、実際のコードで1.2.3ベースのコードを2.0対応させています。とりあえずは、トップページの表示に問題がないレベルまでいってから rake tes…

fixtures の変更

Fixtureも変わっています。大きくは、関連オブジェクトをidではなくhuman readableな名前で記述できるようになった点ですが、このエントリは関係ありません。隠れた変更点?として、fixtureのキャッシュ機能が追加されています。