[前][次][番号順一覧][スレッド一覧]

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...]