friendly_id,播种数据库,未定义方法' friendly_id'

时间:2012-06-10 14:07:46

标签: ruby-on-rails database ruby-on-rails-3 friendly-id

在Rails 3应用程序中,我正在尝试为使用friendly_id的模型编写种子(在db / seeds.rb中):

# /db/seeds.rb
Page.create(:title => "Default page", :content => "Default content of the default page")

当我运行rake db:seed时,任务失败。以下是与--trace

一起运行时的要点
rake aborted!
undefined local variable or method `friendly_id' for #<Class:0x007fa1de992ac8>
/Users/cornelius/.rvm/gems/ruby-1.9.2-p290@usg/gems/activerecord-3.2.5/lib/active_record/dynamic_matchers.rb:50:in `method_missing'
/Users/cornelius/Sites/usg/app/models/page.rb:2:in `<class:Page>'
/Users/cornelius/Sites/usg/app/models/page.rb:1:in `<top (required)>'
...

以下是模型:

# /app/models/page.rb
class Page < ActiveRecord::Base
  extend friendly_id
  friendly_id :title, use: :slugged
end

我使用friendly_id作为宝石:

# /Gemfile
gem 'friendly_id'

任何帮助?

1 个答案:

答案 0 :(得分:2)

在你的模型中,你需要正确地扩展类,类名是FriendlyId,而不是friendly_id。

作为Ruby和Rails中的约定,类名是CamelCase,文件名是snake_case。

您的网页模型应为:

class Page < ActiveRecord::Base
  extend FriendlyId
  friendly_id :title, use: :slugged
end