Dans mon plugin, je hérite de quelques modèles du moteur et j'ajoute paramètres de mobilité.Comment étendre dans mon application un modèle AR de mon moteur afin que Mobility ne se plaint pas?
# my enginge
module MyEngine
class Foo < ApplicationRecord
def self.say_hi
return "hi"
end
end
end
# my plugin
require 'my-engine'
module MyEngine
class Foo
include Mobility
translates :name, type: :string
end
end
Maintenant, si je cherche le modèle dans la console Rails:
MyEngine::Foo.say_hi
ArgumentError: KeyValue backend can only be used by ActiveRecord or Sequel models
Si je commente sur la mobilité paramètres tout fonctionne:
MyEngine::Foo.say_hi
=> "hi"
Comment étendre dans mon application un modèle AR MyEngine::Foo
alors Mobility ne se plaint pas?
je tentais la méthode expliquée [ici] (https://stackoverflow.com/a/45252778/1498118) mais je reçois toujours l'erreur. –
Hmm Je ne suis pas sûr de comprendre la question. Vous ne pouvez pas "traduire" un attribut sur une classe en utilisant le backend "key_value" sauf si la classe hérite de "ActiveRecord :: Base" ou de "Sequel :: Model", sinon Mobility ne sait pas comment configurer méthodes correctement. Si vous voulez faire quelque chose de plus flexible, vous pouvez utiliser le générateur de module 'Mobility :: Attributes' directement, que vous pouvez créer sans connaître la classe dans laquelle il sera inclus immédiatement. Si vous pouvez fournir plus de détails, je peux vous expliquer comment faire cela. –
Ne pouvez-vous pas avoir 'class Foo