Ruby on rails Facebook FBML请求不发送mime类型?
我想在我的Rails应用程序中响应不同的格式:Ruby on rails Facebook FBML请求不发送mime类型?,ruby-on-rails,facebook,Ruby On Rails,Facebook,我想在我的Rails应用程序中响应不同的格式: respond_to do |format| logger.info "in main format block, request.format.fbml? = #{request.format.fbml?}" format.html # index.html.erb format.fbml # index.fbml.erb end 这很简单。如果facebook请求页面,则返回.fbml.erb文件,否则返回.html.erb
respond_to do |format|
logger.info "in main format block, request.format.fbml? = #{request.format.fbml?}"
format.html # index.html.erb
format.fbml # index.fbml.erb
end
这很简单。如果facebook请求页面,则返回.fbml.erb文件,否则返回.html.erb文件
我的应用程序知道从layouts目录而不是main.html.erb发送main.fbml.erb,但如果我在主控制器的索引操作中如上所示进行响应,则它不会在响应块中发送app/views/main/index.fbml.erb
有人知道如何轻松做到这一点吗
我使用gem“facebooker”,它会自动将格式设置为fbml
编辑
my Rails日志的输出:
in main format block, request.format.fbml? = true
Rendering template within layouts/main
Rendering main/index
应该自动执行此操作。控制器的前过滤器。如果您不希望将整个facebooker添加到您的应用程序中,那么提取功能似乎相对容易。根据您使用的facebooker版本,可能需要在/config/initializers/mime_types.rb中显式添加以下行
Mime::Type.register_alias "text/html", :fbml
在与Facebooker打交道和编写Facebook应用程序很久之后,我遇到了这种情况。事实证明,在我的新应用的Facebook设置中,渲染方法被设置为IFrame而不是FBML。facebooker不会将fbml发送到iframe是有道理的,因为浏览器不知道如何渲染fbml和fbml标记。很高兴知道这是自动完成的。但是,我使用facebooker,问题仍然存在。它只渲染布局,但不渲染respond_to块中的任何内容。你知道为什么会这样吗?