gpt4 book ai didi

ruby-on-rails - 使用来自另一个 Ruby 类的对象数组初始化对象

转载 作者:数据小太阳 更新时间:2023-10-29 08:38:20 24 4
gpt4 key购买 nike

我在这里创建了一个小的 Ruby 类:

class Star

#Star initialization
def initialize(star, number)
@star = star
@number = number
end
end

我希望用 100 颗星初始化一个名为 Solar System 的类。这就是我所做的,但似乎没有用。任何帮助将不胜感激。

require_relative 'star.rb'

class SolarSystem

#Initialize Game
def initialize(partOfSolarSystem)
@partOfSolarSystem = partOfSolarSystem
@stars_array = []
for i in 0..99
stars_array = Star.new('unknown_star',i)
end
end

def show_solar_system

#code here to show all the initialized stars in solar system

end

end

我似乎无法在构造函数中初始化数组。然后我希望能够打印出 stars 数组中的所有元素。如有任何帮助,我们将不胜感激。

此外,为了最终将其移动到具有 rails 或类似性质的数据库中,我是否应该考虑对其进行哈希处理,或者是否可以通过一些辅助函数将其轻松转换为 mySQL 或其他数据库?我最终想将其写入 rails 并为其创建一个动态网站。

再次非常感谢。

最佳答案

您的问题是在每次迭代时为 @stars_array 变量分配一个新值。有多种处理方法:

@stars_array = (0..99).map { |i| Star.new('unknown_star',i) }

顺便说一句,有几个设计问题(仅供您注意):

  1. 为什么变量叫做 stars_array,而不仅仅是 stars

  2. 为什么 Star 类的实例中会有一些名为 @star 的对象?递归? :) 似乎 @name 是正确且更清晰的属性名称。

  3. 不要错过缩进。


编辑:关于数据库映射。最常见的方式——从 ActiveRecord::Base 继承这两个类,并创建从太阳系到恒星的一对多关系。每个类(class)都有自己的 table 。完全不需要任何努力。

关于ruby-on-rails - 使用来自另一个 Ruby 类的对象数组初始化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20754590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com