1

Rails 3 アプリで、以下を使用するモデルのシードを (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'

何か助けはありますか?

4

1 に答える 1

2

モデルでは、クラスを適切に拡張する必要があります。クラス名は、friendly_id ではなく、FriendlyId です。

Ruby と Rails の慣習として、クラス名は CamelCase で、ファイル名は snake_case です。

Page モデルは次のようになります。

class Page < ActiveRecord::Base
  extend FriendlyId
  friendly_id :title, use: :slugged
end
于 2012-06-10T14:45:54.190 に答える