我应该如何将Facebook应用程序整合到我当前的Rails应用程序(什么架构)?

问题描述:

我想为我的Rails应用程序创建一个非常简单的Facebook应用程序。起初,因为它非常简单,所以我在PHP中创建了一些东西,将它放在应用程序空间之外并将回调URL设置为那里。不过,我宁愿在我的Rails应用程序中生活的Facebook应用程序(原因之一是,所以我可以在必要时重用视图)。我应该如何将Facebook应用程序整合到我当前的Rails应用程序(什么架构)?

因为我的Facebook应用程序看起来会有很大的不同,并且与我的Rails应用程序有很大不同,所以我需要不同的视图和控制器操作来与这些视图进行交谈。我的第一个直觉是创建一个Facebook控制器,并以某种方式将所有“facebook.my_domain.com”请求路由到facebook控制器。这将允许我要求Facebook登录只有该控制器的请求,并从主应用程序分离Facebook应用程序。我有read that a good method is to render different views based on the requested format但问题是如果请求格式不同,我不想在控制器操作中做同样的事情。基于控制器动作中的请求格式,与模型进行不同的交互看起来很丑陋,而不是根据请求格式将所有请求映射到Facebook控制器,而是在特定于Facebook的控制器中与模型进行不同的交互。

这是否有意义,还是应该真的尝试不添加Facebook控制器?

您似乎不太可能将所有主应用程序的功能封装到单个控制器中。这似乎是一个非常繁琐的方法。

我会推荐的是在您的application_helper.rb中定义一个方法,它只是检查传入的请求是否是Facebook请求。然后,您可以在需要区分这两种请求类型的控制器或视图中使用该辅助方法。鉴于唯一的区别应该出现在表示层中,您应该只需要修改控制器以根据请求类型呈现适当的视图,并创建facebook视图。

您可能需要的唯一其他更改就是修改身份验证/登录代码。由于facebook请求不需要以与常规应用程序相同的方式进行身份验证,因此您可能需要为它的时间添加一些条件。