ActiveRecord :: AssociationTypeMismatch - PullRequest
       0

ActiveRecord :: AssociationTypeMismatch

0 голосов
/ 22 февраля 2012

ОК, сценарий таков: я пытаюсь сохранить 3 вложенных формы на одном контроллере. Отношения между пользователем и магазином работают гладко, возникает проблема между магазином и shop_type. Итак, когда я пытаюсь обновить информацию о shop_type в представление редактирования магазина

Выложить эту ошибку: Ожидается ShopType (# 70233617878800), получен ActiveSupport :: HashWithIndifferentAccess (# 70233610891660)

Я уже искал об этом в API документации, но для меня все еще остается загадкой, почему shop_type передает как хеш.

спасибо.

ShopsController

def new
   @user = current_user
   @shop = @user.build_shop.shop_type

   end


   def create
     @user = current_user
      @shop = @user.build_shop(params[:shop])
          if  @shop.save   
        flash.now[:success] = "blah"
         render :edit
      else
        render  :new 
    end
  end

   def edit
 @user = current_user
  if @shop = current_user.shop 
   render :edit
  else render :new
   end
 end


   def update   
       @user = current_user
           @shop = current_user.shop
        if @shop.update_attributes(params[:shop])
         flash.now[:success] = "blah"
         render :edit
      else
        render  :edit
    end
  end 
end

ShopModel

 belongs_to :user
 belongs_to :shop_type

Shop_typeModel

has_many :shops
  accepts_nested_attributes_for :shops 
 attr_accessible :shops, :shop_attributes

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Я выяснил, до сих пор не ясно, почему я должен использовать : shop_type_id вместо просто : shop_type в fields_for.

0 голосов
/ 22 февраля 2012

Изменение в строке config/development.rb:

config.cache_classes = true

Я не знаю, почему возникает эта ошибка, но этот подход решает эту проблему.Но вы должны знать, что он будет кэшировать классы, и изменения в ваших классах рельсов не могут дать никакого эффекта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...