0

2 つのデータベース間でフィールドをリンクしている Rails アプリがあります。データベースのものはすべて問題ないようです。

ただし、説明をリモート データベースからローカル データベース内の製品にマッピングするフォームが 1 つあります。

製品の作成と説明の選択に使用されるフォームは正常に機能します

#_form.rb
 Semantic_form_for @products do |f|

   f.input :名前
   Semantic_fields_for :description_maps do |説明|
     description.input :desciption_map_id, :input_html=>{:name=>"product[description_map][description_id]}, :collection => @descriptions
   終わり
 終わり

#product.rb
class Product < ActiveRecord::Base
  attr_accessible :name, :description_map_attributes, :description_map

  has_one :description_map

  accept_nested_attributes_for :description_map

フォームを送信すると、エラーが発生します

DescriptionMap(#...) が必要で、ActiveSupport::HashWithIndifferentAccess(#othernumber) を取得しました

なぜこれが起こっているのか理解できないようです。

投稿されているパラメータは問題ないように見えます

"製品"=>{"名前"=>"テスト名",
"description_map"=>{"description_id"=>"1"}}

4

2 に答える 2

1

これは、formtastic が説明マップに名前を付けていた方法に問題があることがわかりました。質問では、私は指定しました

description.input :desciption_map_id, :input_html=>{:name=>"product[description_map][description_id]}, :collection => @descriptions

しかし、「description_map」はこのように「description_map_attributes」である必要がありました

description.input :desciption_map_id, :input_html=>{:name=>"product[description_map_attributes][description_id]}, :collection => @descriptions

この回答が、同じ問題を抱えている他の誰かに役立つことを願っています。

于 2011-05-10T04:49:29.840 に答える
0

次を使用する必要があります: :description_map ("S" なし) 原因は has_on リレーションです

semantic_fields_for :description_map do |description|
  description.input :desciption_map_id, :input_html=>{:name=>"product[description_map]      [description_id]}, :collection => @descriptions

終わり

于 2012-06-08T19:15:03.450 に答える