Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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
使用activerecord的ruby语法&;sinatra(不使用轨道)_Ruby_Activerecord - Fatal编程技术网

使用activerecord的ruby语法&;sinatra(不使用轨道)

使用activerecord的ruby语法&;sinatra(不使用轨道),ruby,activerecord,Ruby,Activerecord,我有一个对名为Admin的模型对象的引用,该对象有一个名为id的字段。该值在puts行中打印出来。我现在需要将该ID传递到ActiveRecord调用中,以创建另一个对象(作为外键),如下所示,但它会抛出一个复制到下面的异常(admin.ID不会在Bill.create调用中提取): 例外情况: /usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/attribute_assignment.rb:59:i

我有一个对名为Admin的模型对象的引用,该对象有一个名为id的字段。该值在puts行中打印出来。我现在需要将该ID传递到ActiveRecord调用中,以创建另一个对象(作为外键),如下所示,但它会抛出一个复制到下面的异常(admin.ID不会在Bill.create调用中提取):

例外情况:

/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/attribute_assignment.rb:59:in `rescue in _assign_attribute': unknown attribute 'admin_id' for Bill. (ActiveRecord::UnknownAttributeError)
        from /usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/attribute_assignment.rb:54:in `_assign_attribute'
        from /usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/attribute_assignment.rb:41:in `block in assign_attributes'
        from /usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/attribute_assignment.rb:35:in `each'
        from /usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/attribute_assignment.rb:35:in `assign_attributes'
        from /usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/core.rb:564:in `init_attributes'
        from /usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/core.rb:281:in `initialize'
        from /usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/inheritance.rb:61:in `new'
        from /usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/inheritance.rb:61:in `new'
        from /usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/persistence.rb:33:in `create'
        from test.rb:34:in `<main>'

您的
bills
表中没有
admin\u id
,因此您尚未在当前状态下运行迁移

您可能需要运行迁移

$ rake db:migrate
或者,如果在先前运行迁移后对其进行了修改,则重新运行迁移。除非强制重新运行迁移,否则更改迁移不会以任何方式影响实际数据库。如果这是最后一次迁移,您可以执行以下操作:

$ rake db:redo

如果这不是最后一次迁移,您可以提供一个
STEP
参数来告诉
rake
它应该向下迁移多少次。

@user3813256我正试图帮助您。你有建设性的反馈吗?如果你没有删除我的第一条评论并否决我的问题,我表示歉意-我以为你删除了我的评论并否决了我的问题,而我只是犯了一个错误。也许我弄错了。@user3813256我删除了我的第一个答案,因为在你纠正了你的打字错误后,它不再相关了。即使我没有删除我的答案,我也会删除你的评论,因为你的编辑使它过时了。本网站上的评论是临时的,可以随时删除,请记住这一点。还请记住,接受否决票绝对不是虐待其他用户的借口,特别是因为你不知道谁实际上在否决你。我们可以简单地称之为休战吗:)我祝你一切顺利。谢谢你回答这两个问题。我在前面解决了这个问题(与您提到的相同)。
$ rake db:migrate
$ rake db:redo