【问题标题】:Rails: friendly_id uses name and not slug as idRails:friendly_id 使用名称而不是 slug 作为 id
【发布时间】:2011-12-10 08:18:38
【问题描述】:

使用:Rails 3.0.3 Friendly_id:4.0.0.beta11

我已经创建了一个可以正常工作的应用程序的开发版本,其中一切正常,包括友好的 id url:s 像 domain.com/cars/mitsubishi

现在我正在 Heroku 上部署应用程序,但由于某种原因我无法让友好 ID 工作。

问题:当我在 Heroku 上部署它时,它给我的“名称”为friendly_id,而不是 slug_en 或 slug_se。 Calculation.first.friendly_id 给出了例如“我是一个计算”而不是“我是一个计算”,后者将是 slug_en 的内容。

模型(计算)

  extend FriendlyId
  friendly_id :name, :use => :slugged, :use => I18n

迁移(计算):

        t.string :slug_en
        t.string :slug_se

迁移2:

add_index :calculations, :slug_en, :unique => true
add_index :calculations, :slug_se, :unique => true 

问题是我需要将我的本地数据库推送(heroku db:push)到 Heroku(因为它充满了数据),因此我不确定我对迁移的信任程度。据我了解,它们会被 db:push 覆盖。

现在,这并不重要,因为它在本地运行良好。如果我使用 I18n.locale = :se 它会给我 slug_se 作为 id 和 slug_en 为 :en。

值得一提的是,Heroku 使用 postgre,而我在本地使用 mysql,如果这很重要的话。

我的问题:

  1. 如果我将 name-attribute 设为friendly_id 而不是 slug_en 或 slug_se,通常会出现什么问题
  2. 我这里提交的代码有问题吗?
  3. postgre / mysql-differences 会导致这种情况吗?
  4. 是不是我的 Heroku 安装上没有创建索引的问题?

谢谢!

【问题讨论】:

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


    【解决方案1】:

    问题似乎在于当我将文件上传到 Heroku 时。 Heroku 使用friendly_id 4.0.0.beta8,它是第一个出现在 4.0.0.beta11 中的 slug_en/slug_se (如果我理解正确的话)。

    因此,问题仍未解决,而是更改为与此票证中提出的问题没有真正关系的完全不同类型的问题。

    仅供参考:新问题是“为什么将friendly_id 的版本更改为早期版本”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-22
      • 2021-09-05
      • 2010-10-03
      • 1970-01-01
      相关资源
      最近更新 更多