代码之家  ›  专栏  ›  技术社区  ›  rosalynnas

如何使友好标识不强制唯一性?

  •  0
  • rosalynnas  · 技术社区  · 7 年前

    我已经为一个有很多属于关系的嵌套路由。

    resources :websites, :path => 'w' do
        resources :pages, :path => ''
    end
    

    我使用友好的ID gem将URL中的页面ID替换为slug。

    所以我的网址是这样的

    http://example.com/w/1-website-name/page-name
    

    但是,当添加了重复的页面名称时,友好ID会向其附加一个随机散列以使其唯一,即使该页面属于其他网站。

    有没有办法让页面名称在其所属网站内唯一?

    我想做到这一点:

    http://example.com/w/1-website-one/home
    

    http://example.com/w/2-website-two/home
    
    1 回复  |  直到 9 年前
        1
  •  3
  •   Dmitry Kukhlevsky    9 年前

    添加作用域可能是一个答案:

    friendly_id :name, :use => :scoped, :scope => :website
    
    推荐文章