Ruby on Rails + Amoeba Gem: неопределенный метод 'macro'

Я попробовал amoeba версии 2.0.0 в консоли Rails (с Ruby 2.1). Это моя модель:

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'

Где я ошибся?

1 ответ

До

= f.input :chapter, as: :select, collection: Chapter.all

После

В моем случае я решил эту ошибку

= f.input :chapter_id, as: :select, collection: Chapter.all

Этот вопрос также задавался на GitHub: при использовании amoeba_dub: неопределенный метод для NilClass

Это было вызвано include_field использоваться на что-то, что не было ассоциацией. Не делай этого! Чтобы избежать двусмысленности в будущем, include_field был переименован в include_association,

Другие вопросы по тегам