Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 友好的id,种子数据库,未定义的方法';友好id';_Ruby On Rails_Database_Ruby On Rails 3_Friendly Id - Fatal编程技术网

Ruby on rails 友好的id,种子数据库,未定义的方法';友好id';

Ruby on rails 友好的id,种子数据库,未定义的方法';友好id';,ruby-on-rails,database,ruby-on-rails-3,friendly-id,Ruby On Rails,Database,Ruby On Rails 3,Friendly Id,在Rails 3应用程序中,我尝试为使用以下内容的模型编写种子(在db/seeds.rb中): 当我运行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/activere

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

当我运行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)>'
...

有什么帮助吗?

在您的模型中,您需要正确扩展类,类名是FriendlyId,而不是FriendlyId

作为Ruby和Rails中的惯例,类名是CamelCase,文件名是snake\u case

您的页面模型应为:

class Page < ActiveRecord::Base
  extend FriendlyId
  friendly_id :title, use: :slugged
end
class页面
你试过使用“extend FriendlyId”吗?文档()建议它应该是
extend FriendlyId
而不是
extend FriendlyId
——但我不会写这样的答案,偷走Dave的代表。@Shadwell别担心;知识产权署会(
# /app/models/page.rb
class Page < ActiveRecord::Base
  extend friendly_id
  friendly_id :title, use: :slugged
end
# /Gemfile
gem 'friendly_id'
class Page < ActiveRecord::Base
  extend FriendlyId
  friendly_id :title, use: :slugged
end