1

Railsコンソール(Ruby 2.1)でアメーババージョン2.0.0を試しました。これは私のモデルです:

class Dict < ActiveRecord::Base
  belongs_to :user
  has_many :cards, dependent: :destroy
  has_many :idioms, through: :cards
end
class Card < ActiveRecord::Base
  belongs_to :dict
  has_many :idioms, dependent: :destroy
  amoeba do
    exclude_field :dict_id
  end
end
class Idiom < ActiveRecord::Base
  belongs_to :card
  amoeba do
    include_field :repres
    include_field :card_id
    include_field :kind
    include_field :note
  end
end

Railsコンソールで試してみます

c=Card.find_by_id(19) # yields a Card object
c.amoeba_dup

これにより例外が発生します

NoMethodError: undefined method macro' for nil:NilClass
from .../amoeba-2.0.0/lib/amoeba.rb:412:in amo_process_association'
from .../amoeba-2.0.0/lib/amoeba.rb:381:in block in amoeba_dup'
from .../amoeba-2.0.0/lib/amoeba.rb:379:in each'
from ..../amoeba-2.0.0/lib/amoeba.rb:379:in amoeba_dup'
from .../amoeba-2.0.0/lib/amoeba.rb:457:in block in amo_process_association'

どこで間違いを犯したのですか?

4

1 に答える 1

0

この質問は GitHub でも尋ねられました: When using amoeba_dub : undefined method for NilClass

include_field関連付けではないものに使用されたことが原因でした。そうしないでください!将来のあいまいさを避けるために、include_fieldに名前が変更されましたinclude_association

于 2016-11-14T04:52:27.110 に答える