1
으로 특정 인스턴스에 액세스하는 방법은 항상 정확히 두 개의 주소를 가진 주문을 보유하고 있습니다. 보기에는 두 가지 주소를 모두 입력 할 수있는 양식이 있습니다. 내 컨트롤러에서 인스턴스 @을 전달하고 두 하위 인스턴스 주소는입니다. 난 그냥 처음 @의 order.addresses에 액세스 할 수있는 방법을보기에서중첩 된 형태, • <em>송장 주소</em>과 <em>배송 주소</em> : 제대로 fields_for
def new
@order = Order.new(orderCreationDate: Time.now)
2.times{ @order.addresses.build }
end
, 다음 다른 장소에서 두 번째 @의 order.addresses :
내 OrdersConntroller에서 추출? 내가 지금까지 시도했습니다 무엇
:
<%= form_for @order do |f| %>
...
<%= f.fields_for :addresses do |ff| %>
<%= ff.text_field :firstName %>
...
<% end %>
<% end %>
그러나 그런 다음 HTML 결과는 다음 (여기서 이름과 ID가 옳지 않다)이다. 내 주문 모델
<input type="text" name="order[a][firstName]" id="order_a_firstName">
추출 : 지원에 대한
has_many :addresses, foreign_key: "orderID"
accepts_nested_attributes_for :addresses, allow_destroy: true
들으.
안녕하세요, Ganesh, 나는이 문제를 어떻게 해결할 수 있는지보고 있습니다. 하지만 주문을 저장하려고하면 주소 중 하나에 대한 유효성 검사가 실패합니다. 모든 유효성 검사가 통과되면 3 개의 인스턴스가 모두 저장되는지 확인하려면 어떻게해야합니까? 그렇지 않으면 롤백이 있어야합니다. – fydelio
유효성 검사 또한 위의 방법을 사용하여 작동합니다. –