Sunday, June 08, 2014

Zmiana standardowego adresu widoku show

niedziela, czerwiec 08, 2014 Dodany przez Miłosz Osiński #RUBY ON RAILS ##
Wkurza was już suche id w adresie widoku show? czas to zmienić!

Znanym od dawna banalnym sposobem jest dodanie w modelu dwóch metod które troszkę urozmaicą nam adres:
#app/models/snipp.rb
def slug
  title.downcase.gsub(" ", "-")
end

def to_param
  "#{id}-#{slug}"
end
kod powyżej sprawia że nasz dotychczasowy adres np:
http://localhost:3000/articles/4
Zmieni się na:
http://localhost:3000/articles/4-zmiana-standardowego-adresu-widoku-show

Nie koliduję to w żaden sposób z dotychczasowym działaniem jest tylko jedno "ale"...
Co jeśli użyłem w tytule polskie znaki lub znaki specjalne?
W takim przypadku warto posiłkować się gemem stringex który rozwiąże tego typu problemy.
Warto pamiętać o dodaniu tłumaczenia dla polskich znaków PL

Po dadaniu Gemu nasz model wygląda tak:
#app/models/snipp.rb
def slug
  title.to_url.first(40)
end

def to_param
  "#{id}-#{slug}"
end