2009-09-28 7 views
0

Je veux créer une application facebook très simple pour mon application Rails. Au début, puisque c'est très simple, j'ai créé quelque chose en PHP, je l'ai mis à l'extérieur de l'espace d'application et j'ai défini l'URL de rappel. Cependant, je préférerais que l'appli facebook soit disponible dans mon application Rails (l'une des raisons est que je peux réutiliser les vues si nécessaire). Étant donné que mon application Facebook sera très différente de mon application Rails et que son fonctionnement sera très différent de celui de mon application Rails, j'ai besoin de différents affichages et actions de contrôleur pour communiquer avec ces vues. Mon premier réflexe est de créer un contrôleur Facebook et de router en quelque sorte toutes les requêtes "facebook.my_domain.com" vers le contrôleur facebook. Cela me permettra d'exiger la connexion à Facebook pour les demandes seulement à ce contrôleur et séparer l'application facebook de l'application principale. J'ai read that a good method is to render different views based on the requested format mais le problème est que je ne veux pas faire la même chose dans l'action du contrôleur si le format de la requête est différent. Il semble moche d'interagir différemment avec le modèle en fonction du format de requête dans l'action du contrôleur, par opposition au mappage de toutes les requêtes à un contrôleur Facebook basé sur le format de requête et interagir différemment avec le modèle dans le contrôleur spécifique à Facebook.Comment intégrer une application facebook dans mon application Rails actuelle (quelle architecture)?

Est-ce que cela a du sens ou devrais-je vraiment essayer de ne pas ajouter un contrôleur Facebook?

Répondre

1

Il semble peu probable que vous puissiez encapsuler toutes les fonctionnalités de votre application principale dans un seul contrôleur. Cela semble être une approche très lourde.

Ce que je recommanderais est de définir une méthode dans votre application_helper.rb qui vérifie simplement si la requête entrante est une requête facebook. Vous pouvez ensuite utiliser cette méthode d'assistance dans les contrôleurs ou les vues où vous devez différencier les deux types de demandes. Étant donné que les seules différences devraient venir dans la couche de présentation, vous devriez seulement vraiment devoir modifier des contrôleurs pour rendre les vues appropriées selon le type de demande avec la création des vues de Facebook.

Le seul autre changement dont vous aurez probablement besoin est de modifier votre code d'authentification/de connexion. Puisque les demandes de Facebook ne nécessitent pas d'authentification de la même manière que votre application régulière, vous devrez probablement ajouter quelques conditions pour quand il s'agit d'une demande Facebook.

Questions connexes