2010-02-16 10 views
1

Je suis à la recherche d'une solution afin de réutiliser la table user d'une autre application Web qui utilise Authlogic. J'essaye avec ActiveResource (dans la nouvelle application), mais il me manque quelque chose. Ceci est le code qui ne travaillent pas:Table utilisateur partagée avec Authlogic

#Existing app 
class User < ActiveRecord::Base 
    attr_accessible :username, :email, :password 
    acts_as_authentic 
end 

#New app 
class User < ActiveResource::Base 
    self.site="http://localhost:3001" 
end 

L'objectif réel de cet exercice est de construire un webservice avec seulement table utilisateur de la Authlogic. Ce service Web devrait être utilisé à partir de nombreuses applications.

Est-ce que quelqu'un a un pourboire?

EDIT

Eh oui, désolé, c'est l'erreur à mon avis:

NoMethodError in Users#new 
Showing app/views/users/_form.html.erb where line #5 raised: 
undefined method `username' for #<User:0x103477bc0> 
+0

Qu'est-ce qui ne fonctionne pas? Avez-vous des erreurs? –

+0

Une déclaration element_name manquante dans la définition ActiveResource est-elle un problème? http://api.rubyonrails.org/classes/ActiveResource/Base.html – tadman

+0

Il ne devrait pas parce que je n'ai pas besoin de self.element_name = "user" car le modèle a le même nom. – Irukandji

Répondre

1
undefined method `username' for #<User:0x103477bc0> 

Vous ne pouvez pas utiliser la nouvelle méthode sur les ressources ActiveResource. Ou mieux, vous pouvez instancier un nouvel utilisateur avec User.new mais créer un objet local sans attributs distants. Essayez avec:

User.create :email => "[email protected]", :password => "1234" 

Cette créer un utilisateur distant avec ces attributs.