我想为我的Rails应用程序创建一个非常简单的Facebook应用程序。起初因为它非常简单,我在PHP中创建了一些东西,将它放在应用程序空间之外并将回调URL设置到那里。但是,我宁愿将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控制器?
答案 0 :(得分:1)
您似乎不太可能将所有主要应用程序的功能封装到单个控制器中。这似乎是一种非常麻烦的方法。
我建议在application_helper.rb中定义一个方法,它只检查传入的请求是否是facebook请求。然后,您可以在控制器或视图中使用该辅助方法,您需要在这两种方法中区分这两种类型的请求。鉴于表示层中应该只有差异,您应该只需要修改控制器以根据请求类型呈现适当的视图以及创建Facebook视图。
您可能需要的唯一其他更改是修改身份验证/登录代码。由于facebook请求不需要像常规应用程序那样进行身份验证,因此您可能需要在facebook请求时添加一些条件。