使用另一个表的属性更改friendly-id的唯一生成标题名称

时间:2015-06-12 19:32:32

标签: ruby-on-rails ruby seo friendly-url friendly-id

我有一个公司模型,我正在使用这样的friendly_id friendly_id :name, use: :slugged

但是因为可能有许多公司具有相同的名称(不同的分支机构)。我试图通过使用公司地址中的城市属性来处理这种情况。

但公司地址存储在不同的地址表中。

所以company.address.city给了我公司的城市。

friendly_id :slug_candidates, use: :slugged

  # Try building a slug based on the following fields in
  # increasing order of specificity.
  def slug_candidates
    [
      :name,
      [:name, :city]
    ]
  end

我知道我可以做上面这样的事情。但由于city不是公司的一个属性,我怎么能实现这个目标呢?

更新: 可能的解决方案是创建一个帮助方法city,它返回公司的城市。

但问题从未如此。

我使用的friendly_id版本是4.0.10.1 版本5及以上版本中提供了使用slug_candidates的功能。

我尝试更新gem。但它不会更新,因为版本5依赖于activerecord 4.0并且rails依赖于activerecord 3.2.13

这是一种僵局。不知道该怎么做

1 个答案:

答案 0 :(得分:1)

class Company < ActiveRecord::Base

  .............................
  def city
    self.address.city
  end
end