如何在Rails中编写代码?

时间:2012-10-02 22:59:46

标签: ruby-on-rails ruby-on-rails-3

我有三个模型及其对应的表和控制器:

  • 请求
  • DirectPatch
  • UTPFiberPatch

用户创建新请求并定义请求类型:Direct或UTP / Fiber

用户点击保存后,将保存请求,并将用户重定向到编辑屏幕,以创建与该请求对应的所有补丁条目。

  • 根据所选请求的类型,每个补丁条目将在Direct或UTP表中保存为单行。名为request_id的列将充当外键。
  • 直接和UTP /光纤的视图和形式都不同。
  • 用户可以查看单个主页上的所有请求,然后单击进行编辑。然后,用户可以在单个页面上查看该请求的所有补丁行,然后单击以编辑现有或添加新的。

    1. 设置路由,控制器和路由器的最佳方法是什么? 为此观点?
    2. 创建新补丁并自动保存时,请求ID如何通过?

我不确定技术名称对于我遇到的问题究竟是什么,但如果需要,我很乐意添加更多细节并回答问题。

1 个答案:

答案 0 :(得分:0)

您可以在请求模型上使用多态关联:

belongs_to :patch, :polymorphic => true

在Request表中添加两列:

patch_id : integer
patch_type : string

当您创建请求并且用户选择修补程序类型时,您将此修补程序对象分配给您的请求,该请求将填充两个新列。从您请求的型号,您可以调用

request.patch

这将根据存储在数据库中的详细信息返回适当类型的补丁(注意 - 您无法通过多态关联进行急切加载)。

要执行视图,您可以根据补丁的类型在编辑屏幕中渲染部分视图。