Как сделать URL-адреса в Rails безопасными - PullRequest
0 голосов
/ 01 октября 2010

Как я могу реализовать SEO дружественные URL?

Вместо

http://mysite.com/articles/show/2

Я хотел бы использовать артикул вместо идентификатора

т.е.

mysite.com/articles/show/articlename

или как-то объединить id и articlename, как это

mysite.com/articles/show/articlename-2

Я новичок в рельсах, так что, возможно, вы могли бы дать мне короткий совет, где переодеться что-то с каким кодом?

Ответы [ 2 ]

1 голос
/ 01 октября 2010

Посмотрите в вашем контроллере статьи, вероятно, в app/controllers/articles.rb. Вероятно, у вас есть метод с именем show, который ищет статью по идентификатору примерно так:

@article = Article.find(params[:id])

Если вы знаете, что идентификатор будет названием поста, а не его идентификатором, вы можете вместо этого просмотреть свою статью, используя

@article = Article.find_by_title(params[:id])

Это позволит вам использовать несколько уродливые URL, такие как /articles/show/This+is+the+title. Если вы хотите сделать немного более приятный URL-адрес, вы можете добавить столбец в таблицу статей (называемый, скажем, seo_title) для хранения заголовка, переведенного в нижний регистр с подчеркиванием, с получением что-то вроде this_is_the_title.

0 голосов
/ 02 октября 2010

@ и

Ваш вопрос одновременно и прост, и все же сложен. Лучше всего почитать этот более зрелый пост Переполнения стека, чтобы найти ответ:

/514761/kak-sdelat-tak-chtoby-url-adresa-v-ruby-on-rails-druzhili-s-seo-znaya-vendor-name

В нем больше примеров и больше опций. Хотя find_by_title - это опция, она далеко не лучшая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...