Acts_as_slugable

Witam,

Mam problem, bo nie mogę zrobić przyjaznej nazwy linka bez polskich ogonków. Używam acts_as_slugable. Chciałem, żeby wyrazy o jakiejś tam nazwie np.: łosoś miały odpowiednik losos, a wyrazy dwuczłonowe np.: ryba po meksykańsku, odpowiednik ryba-po-meksykansku. Niestety jak wrzucam te wyrazy z pliku to acts_as_slugable nie usuwa ogonków przez co dostaję np.: ryba-po-meksykańsku, a literki Ż,Ź czy Ł, nie są w ogóle pomniejszane (o zamianie na z,z czy l już nie mówiąc). Ma ktoś jakiś pomysł jak sobie z tym poradzić?

Tabela ma ustawione utf8_polish_ci, plik z wyrazami, które wrzucam do bazy, jest kodowany w utf8. Przy wrzucaniu korzystam z script/console.

Pozdrawiam

Niestety wciąż aktualna pozostaje metoda Obie’go, czyli brute-force’owy gsub na wszystkie znaki spoza ASCII (żaden iconv ani bazujący na podobnym narzędzu plugin nie radzi sobie z tym jak trzeba). Jak włączę laptopa, wrzucę gdzieś tutaj odpowiedni kodzik.

Eh, to szkoda, bo plugin był przyjemny, a w tym przypadku staje się bezużyteczny, a o kod bardzo proszę, jeśli możesz go wrzucić.

Jak tak koniecznie musisz mieć plugina, to proszę – opakowałem to rozwiązanie w plugina, gwarantuję że działa :slight_smile:

Dzięki wielkie za pomoc. :slight_smile:

Trochę złożone to rozwiązanie. Ja używam czegoś takiego i też działa:

def to_ascii(text) temp = Iconv.new("cp1250", "UTF-8").iconv(text) temp.tr!("\271\346\352\263\361\363\234\237\277\245\306\312\243\321\323\214\217\257", "acelnoszzacelnoszz") temp.downcase.gsub(' ', '-') end

Działa jeśli masz wyłącznie polskie znaki w tym unikodzie i spację jako jedyny niealfanumeryczny znak :wink: