2008/08/26

Aptana RadRails で test_helper.rb の LoadError が発生する



Edge Rails (2.1.0) と、Aptana RadRails (1.0.3.200807071913NGT)の環境下で、ツールバー上のテストボタンでユニット・テストの実行をすると、以下のエラーが発生します。


c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- test_helper (LoadError)

コマンドでのテストは問題ないので、「rake test:units」とすればいいのですが、次のようにすれば解決できます。



There is an open issue on the Aptana issue tracker, but it doesn’t seem to be resolved yet.  Some people have suggested prefixing your requires with the test directory when requiring the test_helper file at the start of your test files -but I don’t think that’s a good solution, especially if you’re working with multiple developers.  Frustrated by not getting my daily green bar fix, I found this work-around:


  1. From the Eclipse Preferences option, choose Ruby | Installed Interpreters

  2. Select your interpreter (I use the Standard VM default interpreter named usr) and choose ‘Edit’. 

  3. Add -Itest to the Default VM Arguments option.  Don’t forget the leading dash!


  4. Click ‘OK’. 


参考:Chris Cruft » Blog Archive » Aptana RadRails and the test_helper.rb LoadError


2008/08/18

Rails で、一つのフォームで複数のモデルを扱う

先日のRails講習で、いいことを学んだので忘れないうちにメモです・・。


Rails では、基本、一つの Form に一つの Model なのですが、 fields_for というヘルパーを使用することで複数のモデルを扱えます。


一対一のモデルを一度に更新する場合などに使えそうです。




  <% form_for @person, :url => { :action => "update" } do |person_form| %>
First name: <%= person_form.text_field :first_name %>
Last name : <%= person_form.text_field :last_name %>

<% fields_for @person.permission do |permission_fields| %>

Admin? : <%= permission_fields.check_box :admin %>
<% end %>
<% end %>

参考:Rails Framework Documentation


2008/07/17

Rails 2.1.0 をインストールしてみる

久しぶりに、Railsの環境を更新しようと下記のコマンドこ実行すると、エラーがでました。
やはり、すんなりといきませんねぇ~。


> gem update --system
> gem update rails
Updating installed gems
Updating rails
ERROR: While executing gem ... (Gem::InstallError)
invalid gem format for c:/ruby/lib/ruby/gems/1.8/cache/activesupport-2.1.0.gem

いろいろ調べてみると、activesupportを手動でインストールすることで解決できるようです。



http://rubyforge.org/projects/activesupport/


Download gem to a local file, then


sudo gem install --local activesupport-2.1.0.gem


All fixed.



参考:Riding Rails: Rails 2.1: Time zones, dirty, caching, gem dependencies, caching, etc


2008/07/10

MySQLで行番号

MySQLで行番号を表示したいです。

データベースにMySQLを使っていて、INSERTするときにソート番号を得たいときなど、「SELECT時に行番号を表示したい」ということがたまにあります。


ずいぶん昔にそんなことがあって、その時は、一度Excelにコピペして、行番号をつけて、マクロでSQL文を生成、なんてことをやったのですが、MySQLではユーザ変数をつかうことで行番号を表示することが可能でした。


mysql> set @i=0;
mysql> select (@i:=@i+10) as position, name from users;
+----------+-------+
| position | name |
+----------+-------+
| 10 | hoge1 |
| 20 | hoge2 |
| 30 | hoge3 |
| 40 | hoge4 |
| 50 | hoge5 |
+----------+-------+

変数なんて初めて知りました(汗



ユーザによって定義された変数に値を保存し、後で参照することができます。これで1つのステートメントから次のステートメントに変数を移行させることができます。


MySQL :: MySQL 5.1 リファレンスマニュアル :: 8.4 ユーザによって定義された変数


2008/06/12

Google Developer Day 2008

今年もGoogle Developer Dayに参加してきました。


Google Developer Day 2008 GDD2008


基調講演では、Client / Connectivity / Cloud という「3つのC」が次世代Webのキーワードで、Googleではそれぞれ、Gears / Android / Google App Engine を提供しているというお話でした。


Google Developer Day 2008 GDD2008
Google Developer Day 2008 GDD2008
Google Developer Day 2008 GDD2008

どれもまだ触っていないので、近いうちに弄ってみたいと思います。


午後のセッションでは、今回はコードラボ(その場で実際にコーティングしながらアプリを作る)という新しいタイプのセッションがあったので、最近流行りのOpenSocialのコードラボに参加しました。


Google Developer Day 2008 GDD2008

どうせなら前回とはちょっと違ったものにと軽い気持ちだったのですが、OpenSocialをどのように利用するのかいまいちピンと来ていなかった自分には、他のメンバーとディスカッションすることができて、非常に参考になりました。


作成するアプリのアイディアは次のようなもの



  • 自分と友達で動物占い

  • 友達にタグ付

  • チャット

  • フィードリーダー

  • 地図から友達検索

  • 足跡


いくつかのグループに分かれてアプリを作成するのですが、上記の中でも一番ソーシャルっぽい占いアプリに参加


短い時間で、適当に作業担当を決めて作成していくのですが、みんなでワイワイやるといった感覚は普段はまったくないので、非常に新鮮な体験でした。作り終えたときの感動は格別です。


予習の際、デバッグにひどく苦労したのですが、コードラボではGoogleの方に教えて頂いた、CodeRunnerというアプリのおかげで、すぐさまTry and Errorができ非常に助かりました。


それと、いろいろなAPIが提供されているOpenSocialですが、やはり(APIだけでは)難しいところは、サーバ側で処理するのが常套手段とのことでした。


Google Developer Day 2008 GDD2008

前回とはまた違った刺激を受けることができました。是非また参加したいと思いました。