ActiveRecord :: AssociationTypeMismatch ошибка во вложенной форме - PullRequest
1 голос
/ 14 декабря 2011

Когда я отправляю форму, я получаю сообщение об ошибке

ActiveRecord :: AssociationTypeMismatch в ClassGroupsController # ожидается создание пользователя (# 114808470), получен массив (# 81535960)

В чем проблема здесь?Я использую рельсы 3.1.Вот мой кодЗаранее спасибо

Просмотр

<%= form_for :class_group ,:url=>{:action =>"create"} do |f| %>
  <%= f.text_field :course_id%>
  <%=f.text_field :professor%>
  <%=f.text_area :objective %>
  <%=f.fields_for :users do |c|%>
    <%=c.text_field :sex %>
  <%end%>
  <%=f.submit "post" %>
<%end%>

params

 "utf8"=>"✓",
 "authenticity_token"=>"UmSPMh9QzgL7FmtBG92kgpzsz7anWc6zcY2KqZJH3Pg=",
 "class_group"=>{
 "course_id"=>"1", 
 "professor"=>"john",
 "objective"=>"Integrity",
 "users"=>{"sex"=>"m"}},
 "commit"=>"post"}

Контроллер

     class ClassGroupsController < ApplicationController
       def create
         @course=Course.find(params[:class_group][:course_id])
         @class_group=@course.class_groups.build(params[:class_group])
         if @class_group.save
           redirect_to home_url
         end
       end

       def new
         @class_group=ClassGroup.new
         @class_group.users.build
       end
     end

Модель

   class ClassGroup < ActiveRecord::Base
     has_many :users ,:through=>:class_memberships
     has_many :class_memberships
     belongs_to :course

     accepts_nested_attributes_for :users
   end
...