friendly_id, база данных заполнения, неопределенный метод 'friendly_id'
В приложении Rails 3 я пытаюсь написать seed (в db/seeds.rb) для модели, которая использует friendly_id
:
# /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 ответ
Решение
В вашей модели вам нужно правильно расширить класс, имя класса - FriendlyId, а не friendly_id.
Как соглашение в Ruby и Rails, имена классов - CamelCase, а имена файлов - snake_case.
Модель вашей страницы должна гласить:
class Page < ActiveRecord::Base
extend FriendlyId
friendly_id :title, use: :slugged
end