2015-06-01 1 views
0

Я использую friendly_id драгоценный камень, чтобы иметь довольно URLs в моих application.I хочет, URL, как:
Как включить идентификатор в слизняке с помощью friendly_id

localhost:3000/posts/1/my-first-post 

Я хочу сделать это с помощью friendly_id драгоценного камня, как я хочу использовать модуль истории, чтобы избежать 404 error.I пытались, но не может включать идентификатор в коде slug.The я использую это следующим образом:

class Post < ActiveRecord::Base 

    extend FriendlyId 
    friendly_id :pretty_url, use: [:slugged, :history] 

    def pretty_url 
     "#{id}/#{title}" 
    end 
end 

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

ответ

0

Я думаю, что я помню, где-то читал, что FriendlyId сталкивается с проблемами со слешами в вашей функции slug. Попробуйте "#{id}-#{title}", чтобы посмотреть, так ли это.

+0

да я тоже пробовал, но все же идентификатор не отображается. – ananyo2012

+0

Вы видите "-title" или "title"? Если это первое, тогда ваше сопоставление идентификатора может быть ошибочным. Если это последнее, тогда ... idk, если честно – Synergist

+0

да, я просто вижу «заголовок» в прокрутке URL. – ananyo2012

0

idPost установлен после запись сохраняется. pretty_url не работает, потому что id еще не существует.

Вы можете получить такое поведение без использования friendly_id камень, выполнив:

def to_param 
    "#{id} #{title}".parameterize 
end 
Смежные вопросы