我有一個現有的軌道應用程序,我添加了一個新的控制器來處理來自我的小facebook應用程序(使用facebooker插件)的請求。正確的方式來設置Facebook的畫布網址和軌道應用程序中的路線
在Facebook的應用程序的配置我設置畫布回調URL到http://my.host.ip/fb/
在純粹的Facebook應用程序的URL會離開關/ FB /和用戶將被引導到應用程序的主頁。但由於這是一個現有的應用程序,我不能這樣做。
現在在我的routes.rb中我有:
map.connect '/fb/like/:id', :controller => 'facebook_app', :action => "like"
map.connect '/fb/:category', :controller => 'facebook_app', :action => "index", :category => "default"
敖當用戶訪問Facebook的http://apps.facebook.com/my_app_name/進行調用,以http://my.host.ip/fb/和呈現的罰款。
在該網頁上我有聯繫的 「喜歡」 的動作:
<%= link_to "like", :controller => "fb", :action => "like", :id => id %>
唯一的問題是,這些得到呈現爲:
http://apps.facebook.com/my_app_name/fb/like/12345
時,我想的是:
http://apps.facebook.com/my_app_name/like/12345
看看如何/ fb /正在引起我的悲傷?
有沒有辦法解決這個問題?要麼在路徑定義中以某種方式表示/ fb /僅適用於傳入的URL?或者在url生成器中以某種方式忽略/ fb /?
我找到了一個解決方法......如果我添加上面這條路線的現有的「喜歡」的路線:
map.connect '/like/:id', :controller => 'facebook_app', :action => "like"
那麼第一途徑是什麼使用的的link_to URL生成和獲取生成正確的網址:
http://apps.facebook.com/my_app_name/like/12345
點擊它時,會導致Facebook來提出這個要求到我的應用程序:
http://my.host.ip/fb/like/12345
這是由原來的「喜歡」路線匹配。
我寧願不必爲我的Facebook控制器中的每個動作都這樣做。
爲什麼不是爲我工作呢?它看起來像忽略了:conditions => {:canvas => true}選項,以便它接管map.home/lame – simianarmy 2010-05-21 03:31:10