Rails:friendly_id使用name而不是slug作为id

时间:2011-10-18 18:25:21

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

使用:Rails 3.0.3 Friendly_id:4.0.0.beta11

我已经创建了一个应用程序的完全可用的开发版本,我在其中完成了所有工作,包括friendly_id url:s,如domain.com/cars/mitsubishi

现在我在Heroku上部署应用程序,但由于某种原因我无法使friendly_id工作。

问题:当我在Heroku上部署它时,它给我“name”作为friendly_id而不是slug_en或slug_se。 Calculation.first.friendly_id给出了例如“我是一个计算”而不是“i-am-a-calculation”,这将是slug_en的内容。

模型(计算)

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

迁移(计算):

        t.string :slug_en
        t.string :slug_se

Migratiotion2:

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-属性作为friendly_id而不是slug_en或slug_se
  2. ,通常会出现什么问题?
  3. 我在这里提交的代码有什么问题吗?
  4. postgre / mysql-difference会导致这种情况吗?
  5. 是否在我的Heroku安装中没有创建索引?
  6. 谢谢!

1 个答案:

答案 0 :(得分:0)

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

所以,问题仍然没有解决,但改为与这张票中提出的问题无关的完全不同类型的问题。

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