기존 자녀가있는 새로운 부모를 만드는 방법을 아는 사람이 있습니까?기존 자녀가있는 부모 만들기
class Order < ActiveRecord::Base
has_many :jobs
accepts_nested_attributes_for :jobs
end
class Job < ActiveRecord::Base
belongs_to :quote
belongs_to :order
end
중첩 된 변수로, 나는 그것이 새로운 아이들의와 함께 자동으로 새로운 부모를 생성하는 새로운 질서와 하나 개 이상의 작업 (어린이) (부모)와 만드는 방법을 구축 할 수 있습니다. 내가 가지고있는 것은 기존 자녀 그룹 (견적에 작성된 작업)이며 새로운 상위 양식에 포함하고자합니다. 새 주문을 만들기 위해 제출을 누르면 새 부모를 만들고 선택한 자식을 새 부모 ID로 업데이트하려고합니다.
나는 새로운 order_id를 가진 새로운 작업 (children)을 각각 저장하고 새로운 order_id를 저장함으로써 create 메소드에서 이것을 수행하는 지저분한 코드를 가지고있다. 그러나 이것을 자동적으로 수행 할 방법이 있는가?
실제 코드는 복잡하므로 여기에 그 핵심이 있습니다.
여러 작업에서 따옴표가 있다고 가정하면 모든 작업의 quote_id 변수는 이러한 작업의 quote 및 @ quote.jobs = 배열을 다시 가리 킵니다. 주문 컨트롤러에서
attr_accessor :quote_id
: 내가 추가 주문 모델에서
: 여기
내가 지금 가지고있는 무엇def new quote_id
@quote = Quote.find(quote_id)
@order = Order.new
및보기에
<%= simple_form_for @order, :html => { :class => 'form-horizontal' } do |f| %>
<%= f.input :quote_id, value: @quote.id, as: :hidden %>
<%= f.input :account_number %>
...
<table>
<thead><tr> ... column headings here ... </tr></thead>
<tbody>
<% @quote.jobs.each do |q| %>
<tr>
<td><%= q.description %></td>
<td><%= q.price %></td>
</tr>
<% end %>
<tr><%= ... add a row with the total price ... %></tr>
</tbody>
</table>
<%= f.button :submit, "Place My Order" %>
<% end $>
다음 주문 그들은 자동으로 주문하십시오 order.id 아마도 다른 매개 변수의 부부와 함께 생성에 업데이트 할 수 있도록 컨트롤러
작업 매개 변수입니다 내가 선호def create
...
if @order.save
Quote.find(params[quote_id]).jobs.each do |job|
job.update(order_id: @order.id)
end
end
...
는 형태로 중첩 된 객체로 취급한다. 나는
@order = Order.new
@quote.jobs.each do |job|
@order.jobs << job
end
(컨트롤러에서) 시도했다 그러나 그들은 보통 중첩 된 형식의 형태로 표시되지 것 그리고 그 일을하면 실제로 업데이트 될 경우, 모르겠어요.
UI 또는 관련 코드에서이 새 주문 개체와 연결할 기존 작업 개체를로드하는 방법/데이터를 앱에 제출하는 방법 (양식의 게시/만들기 호출을 통해) 귀하의 웹 UI 등)? 제게, 당신의 코드가 어떻게 연관시킬 데이터를 받는지 모르는 것은 잠재적 솔루션을 제공하기가 더 어렵습니다. –
보기 코드를 게시하여 실제로 거기에서 무엇을하고 있는지 확인할 수 있습니까? – Surya