I just encountered a bug that caused the links in my partials to be generated as non-canvas routes when the partial was loaded via ajax.<br><br>This bug is due to facebooker url rewriting checking for fb_sig_in_canvas to determine if the application is running in or outside a canvas, and fb_sig_in_canvas is not sent for ajax requests.<br>
<br>My hacked together patch diff is below, sorry I didn't have a chance to write tests or closely verify that my changes won't break anything else.<br><br>a/vendor/plugins/facebooker/lib/facebooker/rails/facebook_url_rewriting.rb b/vendor/plugins/facebooker/lib/facebooker/rails/facebook_url_rewriting.rb<br>
index 00b1e1d..e81a316 100644<br>--- a/vendor/plugins/facebooker/lib/facebooker/rails/facebook_url_rewriting.rb<br>+++ b/vendor/plugins/facebooker/lib/facebooker/rails/facebook_url_rewriting.rb<br>@@ -11,7 +11,7 @@ module ::ActionController<br>
def link_to_canvas?(params, options)<br> option_override = options[:canvas]<br> return false if option_override == false # important to check for false. nil should use default behavior<br>- option_override || @request.parameters["fb_sig_in_canvas"] == "1" || @request.parameters[:fb_sig_in_canvas] == "1" <br>
+ option_override || (@request.parameters["fb_sig_in_canvas"] == "1") || (@request.parameters[:fb_sig_in_canvas] == "1") || (@request.parameters[:fb_sig_is_ajax]=="1")<br> end<br>
<br> def rewrite_url_with_facebooker(*args)<br><br>