使用带有Friendly_Id Gem的URL中的Slug和id

时间:2014-02-19 01:32:32

标签: ruby-on-rails ruby routes url-routing friendly-url

我正在使用Friendly_id gem创建干净的网址,它工作得很好,但没有像这样的http://localhost:3000/profile/jack-sparo这样的网址,我想要一个像http://localhost:3000/profile/1/jack-sparo这样的网址,其中1是{ {1}},我怎么能这样做?

这是我的配置/路线

user_id

这是我的个人资料控制器

  get "profiles/show" 

  get '/profile/:id' => 'profiles#show', :as => :profile
  get 'profiles' => 'profiles#index'

1 个答案:

答案 0 :(得分:1)

我认为这很有效:

# change in config/routes.rb
get '/profile/:id(/:username)' => 'profiles#show', :as => :profile

# change in app/controllers/profile_controller.rb
@user= User.find(params[:id])

# add to app/models/user.rb
def to_param
  "#{id}/#{username}"
end

其中username是friendly_id用于生成slug的任何内容