Problem w zasadzie taki jak w temacie. Mam aplikację na facebooka napisaną w Rails 3 z wykorzystaniem devise’a oraz omniauth. Podczas korzystania z aplikacji i otworzeniu któregoś z linków w nowej karcie, ładuje się aplikacja na zewnętrznym serwerze (z którego pochodzi). Linki nie mają automatycznie dodanej domeny facebookowej.
[quote=dazz]A czy jest sposób, żeby zmienić nazwę domeny w generowanych linkach helperami? Np: products_path
Widziałem na FB aplikacje które miały od razu pogenerowane tego typu linki bezpośrednio już w iframe.[/quote]
Helpery *_path nie zwracają nazwy domeny/hosta w ścieżce gdyż generują ścieżki względne.
Mam aplikację na stronie “moja-strona.pl” - można z niej korzystać wchodząc bezpośrednio na tę stronę lub skorzystać z aplikacji facebookowej wchodząc na adres: “http://apps.facebook.com/moja-app”
Aplikacja zawiera menu. Jeżeli skorzystamy z aplikacji wchodząc na stronę “moja-strona.pl” linki w menu będą wyglądać następująco: “moja-strona.pl/menu1”, “moja-strona.pl/menu2”. Okazało się, że jeżeli wejdziemy do aplikacji za pomocą adresu “http://apps.facebook.com/moja-app” i podejrzymy linki menu (w kodzie) to będą one również wyglądały tak jak poprzednie, czyli: “moja-strona.pl/menu1” itd. Muszę znaleźć sposób aby po wejściu do aplikacji przez Facebook’a linki wyglądały tak: “http://apps.facebook.com/moja-app/menu1”, “http://apps.facebook.com/moja-app/menu2”. Nie mam zupełnie pomysłu jak to zrobić. W ogóle nie wiem nawet czy to nie kwestia odpowiedniej konfiguracji Virtual Hosta w Apache’u. Nie chciał bym jednak zmieniać wszystkich linków w aplikacji ręcznie na chama. Czy jest może jakieś jedno miejsce w projekcie railsowym, w którym można to zdefiniować?
Aplikacja Facebookowa otwiera się w ramce (iframe) i jeżeli dałbyś linki takie jak mówisz (czyli http://apps.facebook.com/…) to wewntątrz ramki na aplikację pojawiłby Ci się zaembedowany cały facebook z twoją aplikacją… Musisz znaleźć inne rozwiązanie (np. sprawdzać JSem na każdej stronie jaka jest wartość top.location.href)
def default_url_options(options = nil)
{ :host => "example.com" }
end
I teraz jeżeli zamiast (przykładowo) “products_path” użyjemy “products_url”, to wygeneruje nam link “http://example.com/products”.