2015-12-25 1 views
0

GemfileRails 4.2.5 et userstamp - conflit avec un créateur de méthode

gem 'rails', '~> 4.2', '>= 4.2.5' 
gem 'userstamp', :git => 'https://github.com/stricte/userstamp.git', :branch => 'rails4' 

modèle utilisateur

class User < ActiveRecord::Base 
    ... 
    model_stamper 
    stampable 
    ... 
end 

J'ai ce message

You tried to define an association named creator on the model User, but this will conflict with a method creator already defined by Active Record. Please choose a different association name. (ArgumentError) 

Comment puis-je résoudre ce problème?

Répondre

0

Vous devez personnaliser votre appel estampable comme suggéré dans le docs.

Il devrait être quelque chose comme ça:

acts_as_stampable :stamper_class_name => :person, 
        :creator_attribute => :create_user, 
        :updater_attribute => :update_user, 
        :deleter_attribute => :delete_user 

Le problème est que Active Record crée une méthode appelée créateur et la pierre précieuse essaie de faire la même chose car cela est le comportement par défaut. Changer l'attribut du créateur devrait être suffisant. Mais vous avez toutes ces options à personnaliser.

+0

Si j'ajoute ce code au modèle User user.rb, je reçois cette erreur: 'méthode non définie acts_as_stampable » pour # ' classe utilisateur : personne, : creator_attribute =>: create_user, : updater_attribute =>: update_user, : deleter_attribute =>: delete_user fin –

+0

Ceci est juste un exemple, il ne fonctionnera pas seulement en le collant. C'est ainsi que les docs suggèrent quand vous avez besoin d'un nom personnalisé pour vos méthodes. Puisque les méthodes créatrices causent des problèmes, vous devriez trouver un moyen d'adapter ce code à vos besoins et le faire fonctionner. Vous devriez regarder plus dans les documents pour savoir comment s'adapter à vos besoins. Sachant que le créateur est celui qui provoque les conflits, vous pouvez essayer de résoudre ou d'ouvrir un problème dans la page github du projet indiquant votre conflit avec enregistrement actif. – cassioscabral