1

使用:Rails 3.0.3 Friendly_id:4.0.0.beta11

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

现在我正在 Heroku 上部署应用程序,但由于某种原因我无法让 friendly_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 安装上没有创建索引的问题?

谢谢!

4

1 回答 1

0

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

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

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

于 2011-10-19T06:01:58.950 回答