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_Join_Associations - Fatal编程技术网

Ruby on rails Rails在创建记录时,插入属于关联

Ruby on rails Rails在创建记录时,插入属于关联,ruby-on-rails,join,associations,Ruby On Rails,Join,Associations,我有一个关于rails中的关联的问题。情况如下: 型号: class Character < ActiveRecord::Base has_one :character_stats end class CharacterStats < ActiveRecord::Base belongs_to :character end 但我觉得应该有这样的东西: stats.character << self 以rails的方式,您可以使用build_关联方法。此外,仅

我有一个关于rails中的关联的问题。情况如下:

型号:

class Character < ActiveRecord::Base
  has_one :character_stats
end

class CharacterStats < ActiveRecord::Base
  belongs_to :character
end
但我觉得应该有这样的东西:

stats.character << self

以rails的方式,您可以使用build_关联方法。此外,仅当创建父对象时才应创建关联,因此请在创建后使用
callback

class Character < ActiveRecord::Base
  has_one :character_stats

 after_create :create_stats

 def create_stats
    state = self.build_character_stats({}) # empty hash as you are not passing any attributes   
    state.save
 end

end
类字符

此外,模型名CharacterStats看起来是复数形式,这可能违反命名约定,并可能导致一些问题,如在运行时解析关联类等。

在rails中,您可以使用build\u关联方法。此外,仅当创建父对象时才应创建关联,因此请在创建后使用
callback

class Character < ActiveRecord::Base
  has_one :character_stats

 after_create :create_stats

 def create_stats
    state = self.build_character_stats({}) # empty hash as you are not passing any attributes   
    state.save
 end

end
类字符

此外,模型名CharacterStats看起来是复数形式,这可能违反命名约定,并可能导致一些问题,如在运行时解析关联类等。

在rails中,您可以使用build\u关联方法。此外,仅当创建父对象时才应创建关联,因此请在创建后使用
callback

class Character < ActiveRecord::Base
  has_one :character_stats

 after_create :create_stats

 def create_stats
    state = self.build_character_stats({}) # empty hash as you are not passing any attributes   
    state.save
 end

end
类字符

此外,模型名CharacterStats看起来是复数形式,这可能违反命名约定,并可能导致一些问题,如在运行时解析关联类等。

在rails中,您可以使用build\u关联方法。此外,仅当创建父对象时才应创建关联,因此请在创建后使用
callback

class Character < ActiveRecord::Base
  has_one :character_stats

 after_create :create_stats

 def create_stats
    state = self.build_character_stats({}) # empty hash as you are not passing any attributes   
    state.save
 end

end
类字符

此外,模型名CharacterStats看起来是复数形式,这可能违反命名约定,并可能导致一些问题,如在运行时解析关联类等。

首先,如果要在创建
字符后创建
CharacterStats
,请在创建
字符后使用
调用。关于您的问题,您可以使用ActiveRecord方法,该方法类似于创建模型的
create\u character\u stats
,用于初始化模型的
build\u character\u stats
。因此,您可以将
create_stats
方法更改为类似以下内容

def create_stats
  self.create_character_stats
end
或者您可以将后回调更改为此

after_create :create_character_stats
然后,您不需要任何方法来实现这一点,但在这种情况下,您无法将属性传递给模型创建


此外,如果要在创建
字符
后创建
字符统计信息
,请在创建
后使用
回调。关于您的问题,您可以使用ActiveRecord方法,该方法类似于创建模型的
create\u character\u stats
,用于初始化模型的
build\u character\u stats
。因此,您可以将
create_stats
方法更改为类似以下内容

def create_stats
  self.create_character_stats
end
或者您可以将后回调更改为此

after_create :create_character_stats
然后,您不需要任何方法来实现这一点,但在这种情况下,您无法将属性传递给模型创建


此外,如果要在创建
字符
后创建
字符统计信息
,请在创建
后使用
回调。关于您的问题,您可以使用ActiveRecord方法,该方法类似于创建模型的
create\u character\u stats
,用于初始化模型的
build\u character\u stats
。因此,您可以将
create_stats
方法更改为类似以下内容

def create_stats
  self.create_character_stats
end
或者您可以将后回调更改为此

after_create :create_character_stats
然后,您不需要任何方法来实现这一点,但在这种情况下,您无法将属性传递给模型创建


此外,如果要在创建
字符
后创建
字符统计信息
,请在创建
后使用
回调。关于您的问题,您可以使用ActiveRecord方法,该方法类似于创建模型的
create\u character\u stats
,用于初始化模型的
build\u character\u stats
。因此,您可以将
create_stats
方法更改为类似以下内容

def create_stats
  self.create_character_stats
end
或者您可以将后回调更改为此

after_create :create_character_stats
然后,您不需要任何方法来实现这一点,但在这种情况下,您无法将属性传递给模型创建


还有这里提到的这个问题

知道这个问题很有用,但我必须传递参数。。。我将编辑我的文章…这是非常有用的知道,但我必须传递参数。。。我将编辑我的文章…这是非常有用的知道,但我必须传递参数。。。我将编辑我的文章…这是非常有用的知道,但我必须传递参数。。。我会为此编辑我的帖子。。。