Ruby on rails 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_关联方法。此外,仅
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
然后,您不需要任何方法来实现这一点,但在这种情况下,您无法将属性传递给模型创建
还有这里提到的这个问题知道这个问题很有用,但我必须传递参数。。。我将编辑我的文章…这是非常有用的知道,但我必须传递参数。。。我将编辑我的文章…这是非常有用的知道,但我必须传递参数。。。我将编辑我的文章…这是非常有用的知道,但我必须传递参数。。。我会为此编辑我的帖子。。。