渲染父 rails 4.0 的子节点

Posted

技术标签:

【中文标题】渲染父 rails 4.0 的子节点【英文标题】:Render children of parent rails 4.0 【发布时间】:2014-05-23 16:44:45 【问题描述】:

我有一个具有_many Task_Orders 的合同模型。我正在尝试呈现一个视图,如果我单击合同行项目的“显示”,它将显示属于该合同的 Task_Orders 列表。

这是我的合同架构:

create_table "contracts", force: true do |t|
t.string   "contractId"
t.string   "contractName"

这是我的任务顺序架构:

create_table "task_orders", force: true do |t|
t.integer  "contract_Id",              limit: 255
t.string   "task_orderId"
t.string   "task_orderName"

这是我的合同模型:

class Contract < ActiveRecord::Base

has_many :task_orders

end

这是我的任务顺序模型:

class TaskOrder < ActiveRecord::Base

belongs_to :contract

end

我不完全确定如何使用控制器和视图来实现它......请帮助。我正在使用 Rails 4.0

谢谢。

【问题讨论】:

Show children of a parent class Rails 4.0 的可能重复项 【参考方案1】:

foreign_key

首先,您需要确保为您的关联分配外键:

#app/models/task_order.rb
Class TaskOrder < ActiveRecord::Base
   belongs_to :contract, primary_key: "contractID", foreign_key: "contract_Id"
end

#app/models/contract.rb
Class Contract < ActiveRecord::Base
   has_many :task_orders, primary_key: "contractID", foreign_key: "contract_Id"
end

--

控制器

这应该允许您从控制器调用所需的数据:

#app/controllers/contracts_controller.rb
Class ContractsController < ApplicationController
    def show
       @contract = Contract.find params[:id]
    end
end

#app/views/contracts/show.html.erb
<% for order in @contract.task_orders do %>
   <%= order.id %>
<% end %>

【讨论】:

以上是关于渲染父 rails 4.0 的子节点的主要内容,如果未能解决你的问题,请参考以下文章

使用 linq 和 c# 的最大父 ID 的子节点数

计算特定XML节点c#的子节点数[重复]

高手帮忙:sql 里怎样递归判断父节点和子节

EasyUI tree 选中父节点子节点全部选中,选中子节点父节点不选中

OSG:第一章-1.1-节点类型

[bzoj4154] [Ipsc2015]Generating Synergy