rails:1447
From: twata_nabe@y...
Date: Thu, 3 Aug 2006 06:29:21 +0900 (JST)
Subject: [rails:1447] habtm で param を受け取る方法
わたなべです。よろしくお願いします。 habtmでparamsを受け取る方法について質問させてください。 環境は、 Ruby 1.8.4 Rails 1.1.2 Windows です。 Webアプリの構成は、Service:Area = n:nのhabtmで Serviceというのは会員様が登録されるテーブルです。 Areaというのは地域のデータで、県、市、町等が入るテーブルです。 最初1:nで実装しようと思いましたが、県でも市でも引っかかる ように、n:nにしました。 Serviceの登録画面後、確認画面を表示させる構成になっているのですが、 hiddenタグとパラメータを使って、確認画面を表示させています。 登録画面で、エリアを選択させる部分のソースは、 このようになっています。 <!--rails start--> <select id="service_area_id" name="service[area_ids][]"> <% for area in @area %> <option value="<%= area.id %>"><%=h area.name %></option> <% end %> </select> <!--rails end--> 確認画面に移るときのControllerのdef confirmメソッドでは、 @area_name = Area.find(@params[:service][:area_ids]).name というようにパラメータで受けて、選択されたIDを使って Areaのテーブルから名前を受け取り、確認画面に反映させたいのですが、 エラーが起こります。 --------エラー画面---------------------------------------------------- Couldn't find Area without an ID C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:939:in `find_from_ids' C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:382:in `find' #{RAILS_ROOT}/app/controllers/b_account_controller.rb:145:in `confirm' Parameters: {"membertype"=>"3", "service"=>#<Service:0x39dd9a8 @attributes= {"name_j"=>"", "attachment_id"=>nil, "latitude"=>nil, "updated_at"=>nil, "companyname"=>"fsdfds", "expired_at"=>nil, "between_a"=>"", "deleted_at"=>nil, "between_b"=>"", "website"=>"fsdf", "tel"=>"sfsdfs", "companyaddress"=>"555 Irving, San Francisco, CA", "manager"=>"sdfdsf", "name_e"=>"fsdfds", "longitude"=>nil, "companytel"=>"sfsdfs", "chargerpost"=>"sdfsdf", "charger"=>"sdfdsf", "address"=>"555 Irving, San Francisco, CA", "password"=>"sdfsd", "created_at"=>nil, "industry_id"=>"1", "membertype_id"=>"3", "email"=>"sdfsd"}, @areas=[#<Area:0x39dc268 @attributes={"name"=>"\343\203\217\343\203\274\343\203\254\343\203\240", "latitude"=>"-73.94691467285156", "id"=>"1", "longitude"=>"40.80822244501176"}>], @new_record=true>} ---------------------------------------------------------------------- 安直に @area_name = Area.find(@params[:service][:area_id]).name しても同じエラーが帰ってきました。 たぶん文法的な問題だとおもいますが、Googleで検索しても見つかりませんでした。 当Railsのメーリングリストの過去ログをチェックしても見つかりませんでした。 どなたかご存知の方がおりましたら教えてください。 よろしくお願いいたします。 --------------------------------- Let's start Yahoo! Auction - Free Campaign Now!
-> @ 1447 2006-08-02 23:29 [twata_nabe@y... ] habtm で param を受け取る方法 1456 2006-08-03 04:55 ┗[yuichi_katahira@m...] 1457 2006-08-03 05:01 ┗[yuichi_katahira@m...] @ 1458 2006-08-03 15:29 ┗[twata_nabe@y... ] @ 1459 2006-08-03 15:38 ┣[twata_nabe@y... ] 1461 2006-08-04 04:26 ┗[yuichi_katahira@m...]