Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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 Rails有一对多的关联_Ruby On Rails_Ruby_Associations_Has Many_Has One - Fatal编程技术网

Ruby on rails Rails有一对多的关联

Ruby on rails Rails有一对多的关联,ruby-on-rails,ruby,associations,has-many,has-one,Ruby On Rails,Ruby,Associations,Has Many,Has One,我有一个模型say书和另一个模型say标题。下面简单定义了这些关联 class Book < ApplicationRecord has_one :title end class Title < ApplicationRecord belongs_to :book end 然后我就可以使用book.Title.create创建一个新的Title记录了。所以,我要做的是让它与has_one关联起作用,就像book.title=title.create!(foo:“b

我有一个模型say
和另一个模型say
标题
。下面简单定义了这些关联

class Book < ApplicationRecord
    has_one :title
end

class Title < ApplicationRecord
    belongs_to :book
end
然后我就可以使用
book.Title.create创建一个新的
Title
记录了。所以,我要做的是让它与
has_one
关联起作用,就像
book.title=title.create!(foo:“bar”,book\u id:book.id)

在后一种情况下,当我检查
book.title
的值时,控制台返回
,但对于前者,
book.title
返回
nil
,因此出现了nil类的
NoMethod错误


我试着按照官方文件和堆栈中关于这个的一些其他帖子。但不知何故,我仍然不清楚。

这种行为的原因是
Rails
创建了 方法以
的形式为每个
都创建一个关联名
。如果你需要额外的信息,这里有很多

因此,要为
书籍
创建
标题
,您需要以下内容:

book.create_title

它将执行这个技巧,您期待它的出现。这种行为的原因是
Rails
创建了 方法以
的形式为每个
都创建一个关联名
。如果你需要额外的信息,这里有很多

因此,要为
书籍
创建
标题
,您需要以下内容:

book.create_title

它将执行这个技巧,您期望的是

这是rails的实际行为吗?其他文档值得阅读吗?这是rails的实际行为吗?其他文档值得阅读吗