Rails [已解决] ActiveRecord::AssociationTypeMismatch --- rails_admin

feipinghuang · September 27, 2012 · Last by liulupeng replied at April 03, 2017 · 4662 hits

环境:

ruby 1.9.3 rails 3.2.8 rails_admin 0.0.5

关系:

class Question < ActiveRecord::Base has_many :comments end

class Comment < ActiveRecord::Base belongs_to :question end

rails_admin中更新有CommentQuestion时出现以下错误:

ActiveRecord::AssociationTypeMismatch (Comment(#70171889588300) expected, got NilClass(#70171855412360))


罪魁祸首 (重写 model 的 id 方法):

def id self[:id].to_s end

ActiveRecord 中:

module ActiveRecord module Associations ...... def ids_writer(ids) pk_column = reflection.primary_key_column ids = Array.wrap(ids).reject { |id| id.blank? } ids.map! { |i| pk_column.type_cast(i) } replace(klass.find(ids).index_by { |r| r.id }.values_at(*ids)) end ...... end end


千万不要偷懒直接重写 model 的 id 方法

你好,我遇到同样的问题 class Manufacturer < ActiveRecord::Base has_many :products class Product < ActiveRecord::Base belongs_to :manufacturer

但我不知道到底该怎么改? 我在 product 的 table 中有一个 column 是 manufacturer_id,类别是 integer

如果你在的话,能帮忙释疑下吗?谢谢!

You need to Sign in before reply, if you don't have an account, please Sign up first.