2014-12-04 4 views
0

내가 지금 여기, 레일 4.1 응용 프로그램에서 몇 일 동안 솔루션을 찾고 있었어요 것은 내 질문은 : 레일 응용 프로그램에서표시 여러 중첩 된 속성이

, 내 모델 사용자를 가지고 주소.

class User < ActiveRecord::Base 
     has_many :adresses 
     accepts_nested_attributes_for :adresses 

class Adress < ActiveRecord::Base 
     belongs_to :user 
     accepts_nested_attributes_for :user 

제 양식에 사용자를위한 form_tag를 만듭니다. 문제가 없습니다.

하지만 최종 사용자에게 양식으로 2 개의 주소 입력란을 표시하는 방법은 무엇입니까?

하나를 표시하려면 <%= f.fields_for :adress %>을 사용합니다. 괜찮습니다. 하지만 두 가지 양식 (사용자가 2 개의 주소를 입력 할 수 있도록)을 표시하면 이름이 같고 요청 게시물은 하나만 유지합니다.

나는 아직도, 나는 그것을 얻지 않는다, http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for

에서 문서를 읽을 수 있지만.

적절한 방법이 있습니까?

감사

+0

영어로 클래스, 변수, 메서드 등의 이름을 지정하십시오. –

+0

귀하의 의견을 주셔서 감사합니다, 그건 내 코드에서 괜찮 았지만 여기에 잘못 쓴 –

답변

0

I, 당신은 새로운 행동이 개 주소를 준비하는 것이 좋습니다 foreach는 함께 reneder 형태로 그 사용에 추가하고있다. 당신이 여러 개의 주소를 가지고 있기 때문에 http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for

내가 foreach는 갈 방법이라고 생각 :

나는 여기에 이러한 유형의 솔루션을 발견했다.

+0

젠장, 당신은 너무 duuuumb 보이게! 내 눈앞에 서 있었어! 고맙습니다 :-) –

0

그래서, 멍청한 놈이 레일에있는 사람을 도와 I이었다 같은 방식으로 붙어합니다 :보기에

@user = User.new 
@user.adresses = Adress.new, Adress.new 

, 형태 :

<%= form_for @user do |f| %> 
    <%= f.fields_for :adresses do |a| %> 
    <%= wp.text_field :name %> 
    <% end %> 
<% end %> 

컨트롤러에서

을 주소에 대한 이름 필드를 두 번 인쇄합니다.

(다시 @NickCatib에게 감사)

+0

또한 '@user.adresses = Adress.new, Adress.new' 대신에'2.times {@ user.addresses.build}'와 같은 주소를 만들 수 있습니다 –

+0

"DRY" 이쪽으로, 고마워 .-) –

관련 문제