Ruby on rails Rails数据库:种子错误“;未定义的方法“finder”需要类型条件和x27;对于nil:NilClass“;
尝试填充sqlite数据库时出现问题。关于具体的错误“finder\u需要\u type\u条件?”我找不到太多的信息,但我对Rails没有太多的经验,甚至怀疑问题出在哪里 型号:Ruby on rails Rails数据库:种子错误“;未定义的方法“finder”需要类型条件和x27;对于nil:NilClass“;,ruby-on-rails,database,model,sqlite,seeding,Ruby On Rails,Database,Model,Sqlite,Seeding,尝试填充sqlite数据库时出现问题。关于具体的错误“finder\u需要\u type\u条件?”我找不到太多的信息,但我对Rails没有太多的经验,甚至怀疑问题出在哪里 型号: class Character < ActiveRecord::Base validates :user_id, :name, :class, presence: true end seeds.rb: Character.delete_all Character.create!([ {id: 1, n
class Character < ActiveRecord::Base
validates :user_id, :name, :class, presence: true
end
seeds.rb:
Character.delete_all
Character.create!([
{id: 1, name: "nameone", class: "Warrior", user_id: 1},
{id: 2, name: "nametwo", class: "Mage", user_id: 1},
{id: 3, name: "namethree", class: "Wizard", user_id: 1},
{id: 4, name: "namefour", class: "Warlock", user_id: 1},
{id: 5, name: "namefive", class: "Rogue", user_id: 1}
])
以及尝试种子时的错误:
$ bundle exec rake db:seed
rake aborted!
NoMethodError: undefined method `finder_needs_type_condition?' for nil:NilClass
/var/rubyapps/test/db/seeds.rb:2:in `<top (required)>'
Tasks: TOP => db:seed
$bundle exec rake db:seed
雷克流产了!
NoMethodError:nil:NilClass的未定义方法“finder\u需要类型\u条件”
/var/rubyapps/test/db/seeds.rb:2:in`'
任务:TOP=>db:seed
生成模型时我是否误解了什么?将seeds.rb中的
class
替换为class
,因为字符表中有列名class
{id: 1, name: "nameone", class: "Warrior", user_id: 1},
列名不能为
类
,因为这是保留字。您已经在种子中使用了character\u class
,而该种子在数据库中不存在,因此您只需将此列重命名为数据库
rails g migration RenameCharactersClassColumn
然后将此行添加到迁移文件中
rename_column :characters, :class, :character_class
运行rakedb:migrate
在我创建一个新的rails数据库并试图通过前端创建一个新条目时出现了相同的错误
我有一个名为“class”的专栏。因为它是一个新的数据库,没有任何信息,所以我简单地删除了它并重新创建了它,但对“class”列的调用有所不同。工作正常,没有更多的错误消息
rails g migration RenameCharactersClassColumn
rename_column :characters, :class, :character_class