Mam aplikację na Spree, z globalize3, bo atrybuty modeli (produkty, strony statyczne itd.) mogą być różne w różnych językach. Aktualnie, proces edycji wygląda tak, że administrator wchodzi do panelu, edytuje produkt w jednym języku, przełącza locale na drugi język, po czym edytuje atrybuty produktu w drugim języku.
Wg. klienta, lepiej by było żeby był tylko 1 formularz, w którym mamy pod sobą pola po kolei:
Tytuł (EN): [text field]
Tytuł (PL): [text field]
Opis (EN)): [text field]
Opis (DE): [text field]
Ktoś robił takie rzeczy? Będę miał problemy z walidacjami, przypisywaniem atrybutów i ogólnie to nie jest dobra droga, prawda?
Z globalize jeszcze nie pracowałem, chociaż mam zamiar, moim zdaniem jeśli chodzi o UI to tak się to powinno projektować (chociaż, rzadko programisci stosują takie rozwiązanie), a to że programista ma pod górkę to inna sprawa. Ja zastosowałem taki mechanizm w jednym projekcie, ale bez użycia globalize.
To nie jest oczywiste z punktu widzenia UI. W innym projekcie mieliśmy 3 locale, właśnie jedno pod drugim, i skończyło się na nieczytelnych formularzach w których ciężko się połapać. Pogrupowaliśmy wtedy pola formularzy w zakładki z językami. Tu również w przyszłości dojdą 2 dodatkowe języki więc będzie ten sam problem.
Ale nie o to pytałem. Wygląda na to że w jednym update_attributes mogę przypisać wartości atrybutów dla danego języka. Trudno, rozwiążemy to inaczej.
[quote=hubertlepicki]Mam aplikację na Spree, z globalize3, bo atrybuty modeli (produkty, strony statyczne itd.) mogą być różne w różnych językach. Aktualnie, proces edycji wygląda tak, że administrator wchodzi do panelu, edytuje produkt w jednym języku, przełącza locale na drugi język, po czym edytuje atrybuty produktu w drugim języku.
Wg. klienta, lepiej by było żeby był tylko 1 formularz, w którym mamy pod sobą pola po kolei:
Tytuł (EN): [text field]
Tytuł (PL): [text field]
Opis (EN)): [text field]
Opis (DE): [text field]
Ktoś robił takie rzeczy? Będę miał problemy z walidacjami, przypisywaniem atrybutów i ogólnie to nie jest dobra droga, prawda?[/quote]
Robił, działają jak siemasz!
A tu masz w akcji:
(panel admina, nazwy i opisy produktów)
Jak chcesz mogę ci dać parę login/hasło żebyś zobaczył na http://bitspudlo.com w panelu admina że faktycznie działa
Chciałem na niego przeportować to rozszerzenie, ale to będzie część większego projektu (globalize-spree -> spree_globalize, merge dwóch projektów w jeden)
Nie sprawdzałem, zwłaszcza że są to “ordynarne” metody a nie atrybuty AR.
Jak sobie zrobisz metodę name_pl, która będzie zwracać name w locale :pl niezależnie od I18n.locale i dasz na tym walidację np validates_presence_of :name_pl to powinno działać bez problemu. Atrybuty w railsach to też tylko metody.