渲染父 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 的子节点的主要内容,如果未能解决你的问题,请参考以下文章