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

标签 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 以及启用 slug_candidates 的功能在版本 5 及更高版本中可用。

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

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

最佳答案

class Company < ActiveRecord::Base

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

关于ruby-on-rails - 使用另一个表的属性更改 friendly-id 的唯一生成的标题名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30810859/

相关文章:

ruby-on-rails - 在 rails 3 和 rails 4.1 之间共享 cookie

ruby-on-rails - 为什么 schema.rb 在运行 rake db :migrate? 时会发生变化(在 Git 看来)

python - 自动将 Sybase .ADT 文件转换为 SQL

ruby-on-rails - 如何在 Rails 中包含自定义异常?

.htaccess - SEO - 将子域移动到文件夹

ruby-on-rails - 我可以在不加下划线的情况下渲染:partial View 吗?

ruby-on-rails - Passenger 仅适用于将要开发的 RailsEnv

ruby-on-rails - 有很多通过删除链接的Rails

seo - 用于列出所提供服务的 Schema.org 标记

seo - 对爬虫隐藏文本或 div