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 一对多关系[Ruby on Rails]_Ruby On Rails_Database_Ruby On Rails 3.2_Model Associations - Fatal编程技术网

Ruby on rails 一对多关系[Ruby on Rails]

Ruby on rails 一对多关系[Ruby on Rails],ruby-on-rails,database,ruby-on-rails-3.2,model-associations,Ruby On Rails,Database,Ruby On Rails 3.2,Model Associations,我不知道财产和所有者之间的关系是否正常,当我尝试查询时,我得到了以下错误: Loading development environment (Rails 3.2.13) irb(main):001:0> Owner.find(1).properties Owner Load (18.1ms) SELECT "owners".* FROM "owners" WHERE "owners"."id" = ? LIMIT 1 [["id", 1]] Property Load (0.1

我不知道财产和所有者之间的关系是否正常,当我尝试查询时,我得到了以下错误:

Loading development environment (Rails 3.2.13)
irb(main):001:0> Owner.find(1).properties
  Owner Load (18.1ms)  SELECT "owners".* FROM "owners" WHERE "owners"."id" = ? LIMIT 1  [["id", 1]]
  Property Load (0.1ms)  SELECT "properties".* FROM "properties" WHERE "properties"."owner_id" = 1
ActiveRecord::SubclassNotFound: The single-table inheritance mechanism failed to locate the subclass: 'House'. This error is raised because the column 'type' is reserved for storing the class in case of inheritance. Please rename this column if you didn't intend it to be used for storing the inheritance class or overwrite Property.inheritance_column to use another column for that information.
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/inheritance.rb:143:in `rescue in find_sti_class'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/inheritance.rb:136:in `find_sti_class'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/inheritance.rb:62:in `instantiate'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/querying.rb:38:in `block (2 levels) in find_by_sql'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/querying.rb:38:in `collect!'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/querying.rb:38:in `block in find_by_sql'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/explain.rb:41:in `logging_query_plan'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/querying.rb:37:in `find_by_sql'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/relation.rb:171:in `exec_queries'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/relation.rb:160:in `block in to_a'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/explain.rb:34:in `logging_query_plan'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/relation.rb:159:in `to_a'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/relation/finder_methods.rb:159:in `all'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/associations/collection_association.rb:382:in `find_target'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/associations/collection_association.rb:335:in `load_target'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/associations/collection_proxy.rb:44:in `load_target'
    from /var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/associations/collection_proxy.rb:87:in `method_missing'
    from /var/lib/gems/1.9.2/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in `start'
    from /var/lib/gems/1.9.2/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in `start'
    from /var/lib/gems/1.9.2/gems/railties-3.2.13/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
加载开发环境(Rails 3.2.13)
irb(主):001:0>Owner.find(1.properties)
所有者负载(18.1ms)从“所有者”中选择“所有者”。*其中“所有者”。“id”=?限制1[[“id”,1]]
属性加载(0.1ms)从“属性”中选择“属性”。*其中“属性”。“所有者id”=1
ActiveRecord::SubclassNotFound:单表继承机制无法定位子类:“House”。引发此错误是因为列“type”是为在继承情况下存储类而保留的。如果不打算将此列用于存储继承类或覆盖属性,请重命名此列。要使用另一列获取该信息,请单击“继承\列”。
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/heritation.rb:143:“在find\u sti\u类中救援”
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/heritation.rb:136:in'find\u sti\u class'
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/heritation.rb:62:在“实例化”中
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/querying.rb:38:in`block(2层)in'find_by_sql'
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/querying.rb:38:in'collect!'
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/querying.rb:38:“按sql查找中的块”
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/explain.rb:41:在“日志记录查询计划”中
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/querying.rb:37:“按sql查找”
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/relation.rb:171:in'exec\u querys'
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/relation.rb:160:in'block in to_a'
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/explain.rb:34:在“日志记录查询计划”中
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/relation.rb:159:in`to_a'
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u-record/relation/finder\u-methods.rb:159:in'all'
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/associations/collection\u association.rb:382:in“find\u target”
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/associations/collection\u association.rb:335:in'load\u target'
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/associations/collection\u proxy.rb:44:in'load\u target'
from/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active\u record/associations/collection\u proxy.rb:87:“method\u missing”中
from/var/lib/gems/1.9.2/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in'start'
from/var/lib/gems/1.9.2/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in'start'
from/var/lib/gems/1.9.2/gems/railties-3.2.13/lib/rails/commands.rb:41:in`'
来自脚本/rails:6:in'require'
my property.rb文件:

class Property < ActiveRecord::Base
  attr_accessible :owner_id, :p_city, :p_street, :postcode, :rent, :rooms, :type
  belongs_to :owner
  has_one :ticket
end
class属性
my owner.rb文件:

class Owner < ActiveRecord::Base
  attr_accessible :address, :f_name, :l_name, :tel_no
  has_many :properties
end
类所有者
不能将“type”用作属性/列,因为它是为继承内容保留的。您应该将模型的属性和db列都更改为其他属性。

您的意思是我应该重命名名为“type”的属性?是的,您必须将其更改为其他属性,如“property\u type”。是的。。您不能使用“type”作为列名,因为活动记录使用它来存储ruby类名(用于单表继承)。参考链接:谢谢grotori和NikDP,我会试试的,对不起,我太傻了:(