두 모델의 사용자 및 주소가 있습니다.중첩 된 양식 레일
class User < ActiveRecord::Base
has_many :addresses
accepts_nested_attributes_for :addresses
end
class Address < ActiveRecord::Base
belongs_to :user
end
내 컨트롤러
def new
@user = User.new
@user.addresses << Address.new
@user.addresses << Address.new
end
def create
@user = User.new(params[:user])
if @user.save
#do something
else
render 'new'
end
end
그리고 내보기
<%= form_for @user do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.fields_for :addresses do |a| %>
<p> Home </p>
<%= a.text_field :state %>
<%= a.text_field :country%>
<%= a.text_field :street %>
<p> Work </p>
<%= a.text_field :state %>
<%= a.text_field :country%>
<%= a.text_field :street %>
<% end %>
<% end %>
<% end %>
내 문제는 내가 PARAMS에 입력 마지막 주, 국가, 거리를 얻을 수있다.
"addresses_attributes"=>{"0"=>{"street"=>"test", "state"=>"test",, "country"=>"test"},
"1"=>{"street"=>"", "state"=>"", "country"=>""}}
또한 더 좋은 방법이 있다면 어떤 제안을 주시면 감사하겠습니다.
마지막으로 무엇을 의미합니까? 여기서 보여주는 결과물은 두 가지를 모두 받고 있음을 명확하게 보여줍니다. addresses_attributes [0] 및 addresses_attributes [1] – Faisal
네,하지만 모든 필드를 채웠고 마지막 3 개만 보내졌습니다. – lesce
예 : 처음 세 개의 필드는 'test0'으로 채워지고 마지막 세 개의 필드는 'test'로 채워집니다. – lesce