0

ポリモーフィックな関連付けを導入した後、Railsapp で問題が発生しました。アプリは、複数の属性を持つことができるチーム (および他のモデル) で構成されます。だから私はRailscastsのエピソードに従って、これを思いついた:

アプリ/モデル/attribute.rb

class Attribute < ActiveRecord::Base
  attr_accessible :content

  belongs_to :attributable, polymorphic: true
end

アプリ/モデル/team.rb

class Team < ActiveRecord::Base
  has_many :attributes, as: :attributable
  accepts_nested_attributes_for :attributes
end

そうした後、IRBセッションでこれに遭遇しました:

irb(main):001:0> t = Team.new(name: "Test")
=> #<Team id: nil, name: "Test", created_at: nil, updated_at: nil, scopes_mask: nil>
irb(main):002:0> t.save
   (0.3ms)  begin transaction
            commit transaction
=> true
irb(main):003:0> t.save
   (0.4ms)  begin transaction
            rollback transaction
NoMethodError:   Attribute Load (0.6ms)  SELECT "attributes".* FROM "attributes" WHERE "attributes"."attributable_id" = 1 AND "attributes"."attributable_type" = 'Team'
undefined method `keys' for []:ActiveRecord::Relation

したがって、エラーは以前に記録されたレコードで発生します。最初の保存前のレコードと属性の構築は、レコードのロードと同様に、完全に正常に機能します。

状況について何か助けていただければ幸いです。心から

4

1 に答える 1