2008年4月21日月曜日

passengerで初めてのRoR(3)

Subversionへの登録

ここにあるのを上からやって終わり。
http://wiki.rubyonrails.com/rails/pages/HowtoUseRailsWithSubversion


次はモデルの作成。ボタン一発!位の気持ちでやったんだけどscaffoldでうまく生成できない

% script/generate scaffold boards id:integer name:string url:string

最初のエラー
undefined local variable or method `new_boards_path' for #

なぜか分からず、コンソールからDBにとりあえずデータを入れてみる。

You have a nil object when you didn't expect it!
The error occurred while evaluating nil.to_sym

またエラー・・・ここで気になったのが、生成されるindex.html.erbの10行目から19行目のfor文

<% for boards in @boards %>

<%=h boards.id %>
<%=h boards.name %>
<%=h boards.url %>
<%= link_to 'Show', boards %>
<%= link_to 'Edit', edit_boards_path(boards) %>
<%= link_to 'Destroy', boards, :confirm => 'Are you sure?', :method => :delete %>

<% end %>

for で生成している boards とlink_toで使ってるboardsがかぶってる。。。エラーもlink_toの最初に出る行だし、、、なんて悩みつつ


で、いろいろ探してこちらのサイトでドンピシャな答えをいただきました。
http://www.smallmake.com/smalltalk/computer/2007/12/rails_the_error_evaluating_nil.html

答えは複数形・・・orz

こう変えて、解決しました。
% script/generate scaffold board id:integer name:string url:string
% rake db:migrate


本当はもっと紆余曲折あったけど、(scaffold の前にgenerate migrateしたり、それを消したりとか)コマンド履歴を見るとそのころは単数形で書いているので、どこでどうまちがったんだか・・・

Rubyの構文がまったくわかっていのが今日の敗因。そのせいであからさまに変数名がかぶってるのに、そういうものなのか?と思って放置してしまったり。

とりあえず、今日、「たのしいRuby」買いました。