ruby-on-rails - 如何在 ActiveRecords 中创建对 Ruby 对象的引用?

标签 ruby-on-rails ruby activerecord relationships scaffold

我是一名 Java 开发人员,过去几天我一直在学习 Rails。我有一个 Java EE 应用程序(使用 Hibernate for ORM),我正在尝试将其移植到 Rails。我使用脚手架生成了一些模型。但是我还有其他模型,其中包含对其他模型的引用。我如何定义关系?我也可以搭建它吗?

这是我正在尝试做的一个例子。

public class Engine {
    private int valves;
    private int capacity;
    private int rpm;
}

只需执行以下操作,我就可以在 ruby​​ 中构建 Engine 类:

rails generate scaffold Engine valves:integer capacity:integer rpm:integer

这对我来说是棘手的部分:

public class Car {
    private Engine engine;
}

如何在 Ruby 中搭建 Car 类的脚手架?

最佳答案

如果我理解正确,您正在寻找关联。这是一个 great guide 你应该阅读。这里要理解的是,您在模型中定义了它们如何使用该指南中描述的一系列方法相互关联。

这是我建议你做的:

rails generate scaffold Car <db columns>
rails generate model Engine valves:integer capacity:integer rpm:integer car_id:integer

在你的两个模型中:

class Car < ActiveRecord::Base
  has_one :engine
end 

class Engine < ActiveRecord::Base
  belongs_to :car
end

您实际上可以为两个模型生成脚手架...这将创建 Controller 和 View 。但在这种情况下,添加

可能是有意义的
accepts_nested_attribues_for :engine

改为您的汽车模型。这将允许您从 Controller 和汽车模型的 View 管理引擎模型的操作。

无论如何,我希望这能帮助您开始找到您需要的东西。

关于ruby-on-rails - 如何在 ActiveRecords 中创建对 Ruby 对象的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7646889/

相关文章:

Ruby:将 CSV 列表转换为单独的对象

ruby-on-rails - Rails 4 批量更新模型数组

ruby-on-rails - 理解突变失败

ruby-on-rails - `add_route' : Invalid route name, 已在使用中:'root' (ArgumentError)

ruby-on-rails - Mongoid中的模糊关系

ruby-on-rails - 如何在我的 Rails 应用程序中运行 rake 任务

ruby-on-rails - 在两个日期时间之间迭代,步长为一小时

ruby - 编写代码美化器

ruby-on-rails - 在 rails (belongs_to) 中创建子模型并预先设置父 ID

ruby-on-rails - 对象集合的 Rails 模型类方法