2016-12-13 2 views
0

이것은 고객 모델의 작성 양식입니다.두 모델의 simple_form?

customers 테이블을 채우는 동안 어떤 데이터도 managers 테이블에 삽입하고 있습니다. 그러나이 simple_formdate picker을 추가하려고하지만 dateManger 모델에만 저장되고 고객 모델에는 날짜 필드가 없습니다. 어떻게해야합니까? 내가 가지고있는 대안 옵션은 무엇입니까?

new.html.erb

<%= stylesheet_link_tag "customers" %> 
    <div class="row"> 
    <div class="panel panel-default center" id="new-width"> 
     <div class="panel-body"> 
     <%= simple_form_for @customer do |f| %> 
      <%= f.input :name,:autocomplete => :off %> 
      <%= f.input :principalAmount,:autocomplete => :off %> 
      <%= f.input :interestRate %> 
      <%= f.input :accountType %> 
      <%= f.input :duration,:autocomplete => :off %> 
      <%= f.button :submit %> 
     <% end %> 
     </div> 
    </div> 
</div> 

편집 : Manager 모델은 Customer 모델의 독립적 인 많은 필드가 있습니다. 그러나 고객이 만들어지면 Customer 모델에없는 Manager 모델에 날짜를 추가해야합니다.

+0

저장이 질문은 매우 흐릿 후, 관리자를 업데이트합니다. 나는 당신이 매니저를 의미한다고 생각합니다. 고객과 관계 모델의 관계는 무엇입니까? 실제 원하는 결과는 무엇입니까? – max

답변

2

accepts_nested_attributes_for을 고객 모델에 사용하는 것이 좋습니다. 이 같은 뭔가 : 고객 모델에서

,보기 페이지에서

accepts_nested_attributes_for :managers 

, 기존의 폼 안에 당신은 항상 고객 모델에 getter와 setter를 추가하고 수동으로 설정할 수 있습니다

<%= f.fields_for :managers do |m| %> 
    <%= m.date_field :date %> 
<% end %> 
+0

컨트롤러에서 중첩 된 필드 값에 어떻게 액세스합니까? – InQusitive

+0

매개 변수는 {고객 : {이름 : "foo", 관리자 : {날짜 : "10/10/2016"}}} – Dhanabal

+0

과 비슷합니다. – Dhanabal

2

매니저 필드. 다시 말하지만 관리자와의 관계, 이미 존재하는 경우 등에 따라 다르지만, 요점은 고객 메소드로 형태로 액세스 할 수있는 메소드를 작성할 수 있다는 것입니다. 형태로 다음

# in customer.rb 

def manager_date=(date) 
    manager.date = date 
end 

def manager_date 
    manager.date 
end 

<%= f.input :manager_date %> 

주 -이, 당신은 어딘가에 관리자를 저장해야하고 이전 또는 이후에이 일 것 간단한 예입니다 필요에 따라 달라집니다 업데이트되는 고객 .

이 작업을 수행하는 또 다른 방법은 고객의 manager_date에 대한 attr_accessor를 만드는 것입니다 그것은이 있다면 고객이

after_save :update_manager 

def update_manager 
    manager.date = manager_date 
    manager.save 
end 
+0

고객의 숨겨진 속성을 사용하여 Manager에 전달할 수 있습니까? – InQusitive

+0

예 - 우리는 항상이 작업을 수행합니다. has_many에서는 작동하지 않지만 has_one 또는 belongs_to에는 좋습니다. – Swards

+0

has_may있다, 나는 당신의 대답과 함께 갈 것입니다. – InQusitive