2010-12-13 14 views
2

Je suis novice dans le domaine Ruby on Rails, et bien que j'aime l'organisation et les normes fournies, je suis un peu confus sur la façon de faire fonctionner les rails dans ce cas particulier.Ruby on Rails avec l'API REST

J'ai un Webservice avec lequel je veux utiliser mon application rails. Faire une connexion directe à la base de données serait agréable et me fournir instantanément les modèles dont j'ai besoin pour faire fonctionner mon application Rails.

Cependant, je devrais répliquer toute la logique fournie par le webservice (ce qui n'est pas trivial). Si je ne faisais pas de connexion directe à la base de données, comment pourrais-je conserver les modèles (comme un modèle utilisateur)?

Devrais-je créer une base de données distincte qui imite la base de données du serveur mais n'interagit jamais directement avec celle-ci?

Merci d'avance - faites-moi savoir si vous avez besoin de clarification.

EDIT: Exemple

  1. J'ai une application qui obtient des rails sur l'URL www.mywebservice: 8080.com/users/5
  2. Service Réclamation JSON {nom: foo, nick: bar, ami: baz}
  3. À ce stade, comment puis-je dire à des rails de créer un objet Utilisateur à partir de ce qu'il vient de recevoir, puis de le stocker dans la base de données? Ou est-il un moyen de persister cet objet JSON?

Répondre

1

Pourquoi les rails si vous n'avez besoin d'aucune de ses fonctionnalités? Je recommande de commencer par Sinatra, puis d'ajouter les bibliothèques dont vous avez besoin, comme JSON, ActiveRecord (?) Avec Rails.

Vous pouvez vous connecter à n'importe quelle base de données et vous n'avez pas besoin d'utiliser ActiveRecord, cependant, il est difficile de comprendre ce que vous demandez vraiment. Comment ce titre est-il lié à la question? Pourquoi diriger DB? Vous ne voulez pas instancier un objet utilisateur, puis faire un user.to_json dessus?

KISS! :)

+0

1. Mon titre se rapporte à la question parce que je me demande comment mimer une base de données API REST sans se connecter en fait la base de données de l'API (ou même si je dois imiter du tout). 2. L'instanciation d'un objet-utilisateur signifie que je dois avoir un modèle d'utilisateur - non? Cela ne signifie-t-il pas que je devrais avoir une table Utilisateurs respective? – hwrdprkns

5

ActiveResource gère votre cas d'utilisation très bien http://api.rubyonrails.org/classes/ActiveResource/Base.html

Ce qu'il fait est de réfléchir sur le JSON retourné par le service et le faux objet pour le faire ressembler à c'est un objet réel.

class User < ActiveResource::Base 
end 

user = User.find(1) 
puts user.name 
# "scott"