如何使用friendly_id在slug中包含id

时间:2015-06-01 19:39:59

标签: ruby ruby-on-rails-4 friendly-id

我正在使用friendly_id gem在我的应用程序中有漂亮的网址。我想要一个网址:

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

我想使用friendly_id gem来实现它,因为我想使用History模块来避免404错误。我已经尝试但不能在slug中包含id。我使用的代码如下:< BR />

class Post < ActiveRecord::Base

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

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

但它不包括slug中的id.Rather它正在使用slug,好像只使用了标题。

2 个答案:

答案 0 :(得分:0)

我想我记得在某个地方读过,你的slug函数中遇到了与斜杠有关的问题。请尝试"#{id}-#{title}",看看是否属实。

答案 1 :(得分:0)

保存条目后,id的{​​{1}}设置为Post不起作用,因为pretty_url尚不存在。

通过执行以下操作,您可以在不使用friendly_id gem的情况下获得此行为:

id