Mysql 在Rails ActiveRecord中访问和设置对象
我在Rails 3.2中有一个类,我们称之为Foo,它有另一个称为Bar的类(两个都是ActiveRecords),如下所示: 我的问题是,为什么Rails试图选择BarbyFoo的id,而我显然想要BarbyFoo的bar\uID属性Mysql 在Rails ActiveRecord中访问和设置对象,mysql,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,Mysql,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,我在Rails 3.2中有一个类,我们称之为Foo,它有另一个称为Bar的类(两个都是ActiveRecords),如下所示: 我的问题是,为什么Rails试图选择BarbyFoo的id,而我显然想要BarbyFoo的bar\uID属性 如果需要更多解释,请告诉我。看起来你的关系倒退了。在您的情况下,类Foo应该有属于:bar而不是有一个:bar class Foo < ActiveRecord::Base belongs_to :bar ... end class Foo
如果需要更多解释,请告诉我。看起来你的关系倒退了。在您的情况下,
类Foo
应该有属于:bar
而不是有一个:bar
class Foo < ActiveRecord::Base
belongs_to :bar
...
end
class Foo
关系中具有另一个表的键的表始终使用关联中的属于
。有关属于关联(以及一般关联)的更多信息,请参阅:
看起来你的关系倒退了。在您的情况下,类Foo
应该有属于:bar
而不是有一个:bar
class Foo < ActiveRecord::Base
belongs_to :bar
...
end
class Foo
关系中具有另一个表的键的表始终使用关联中的属于
。有关属于关联(以及一般关联)的更多信息,请参阅:
与有一个
关联外键放置在参考模型(条形图)
中,而不是声明模型(Foo)
。因此,在您的例子中,rails希望Bar
模型中的外键为Bar.foo\u id
。这就是错误消息中查询的原因
当您希望在声明型号中使用外键时,应使用属于
,如果您希望在另一型号中使用外键,则应使用拥有一个
如果你想在Foo中输入外键作为bar\u id
您可以在Foo模型中选择一个属于:bar
或
在条形模型中有一个:foo
。与有一个
关联的外键放置在引用模型(条形)
中,而不是声明模型(foo)
中。因此,在您的例子中,rails希望Bar
模型中的外键为Bar.foo\u id
。这就是错误消息中查询的原因
当您希望在声明型号中使用外键时,应使用属于
,如果您希望在另一型号中使用外键,则应使用拥有一个
如果你想在Foo中输入外键作为bar\u id
您可以在Foo模型中选择一个属于:bar
或
A在条形模型中有一个:foo
。嗯……这是可行的,但考虑到数据库中的foo'has_one'键引用条和Bar不了解foo,措辞似乎有点违反直觉。好吧,不管怎样,谢谢:)嗯……这很管用,但考虑到数据库中的foo‘has_one’键引用栏和bar不了解foo,我觉得这句话有点违反直觉。不管怎样,谢谢:)
class Foo < ActiveRecord::Base
belongs_to :bar
...
end