0

モデルイベントとモデルセリエがあります。それらは次のように定義されます。

event.rbで

所属する:serie
accepts_nested_attributes_for:serie
attr_accessible:serie

serie.rbで

has_many:events

イベントテーブルにはserie_idキーがあります。

イベントフォームには、次のようなものがあります。

form_for @event do | f |
   ..。
   ..。
   f.fields_for @ event.serie do | serie_f |
     ...。
   終わり
 終わり

コントローラへのリクエストは次のようになります。

... "event" => {....、 "serie" => {"..." => "19/12/2012"、....}、...} .. ..

events_controllerの作成アクションでは、次のようになります。

def create
  @event = current_user.events.new(params [:event])
  ...。

この行では、次のエラーが発生します。

ActiveRecord :: AssociationTypeMismatch(Serie(#134112340)が期待され、ActiveSupport :: HashWithIndifferentAccess(#92663620)を取得しました)

問題が何であるかわからない

4

1 に答える 1

1

Railsにネストされた属性を保存しようとするときは、次の質問を確認する必要があります:ActiveRecord::AssociationTypeMismatch。モデル内で置き換えるだけだ
と思います。 そして、あなたの見解では、代わりに試してくださいattr_accessible :serieattr_accessible :serie_attributes
f.fields_for :serie do |serie_f|f.fields_for @event.serie do |serie_f|

于 2012-12-18T20:05:29.677 に答える