내 프로젝트에는 Organization
모델과 Address
모델이 있습니다. 내가 노력하고 때레일에 다른 모델의 특성을 포함하는 모델을 저장하는 방법은 무엇입니까?
<%= form_with(model: organization, local: true) do |form| %>
<div class="field">
<%= form.label :organizationName %>
<%= form.text_field :organizationName, id: :organization_organizationName %>
</div>
<div class="field">
<%= form.label :email %>
<%= form.text_field :email, id: :organization_courriel %>
</div>
<div class="field">
<%= form.label :webSite %>
<%= form.text_field :webSite, id: :organization_webSite %>
</div>
<%= fields_for :adresse, organization.address do |address_fields| %>
Street number: <%=address_fields.text_field :streetNumber%><br>
Street: <%=address_fields.text_field :street%><br>
City: <%=address_fields.text_field :city%><br>
Province: <%=address_fields.text_field :province%><br>
Postal code: <%=address_fields.text_field :postalCode%><br>
<% end %>
<div class="actions">
<%= form.submit %>
</div>
<% end %>
: 나는 주소이 (Address
속성 Organization
속성 form_with와 fields_for)처럼 내 새로운 조직 형태로 속성을 추가
class Organization < ApplicationRecord
has_one :address
accepts_nested_attributes_for :address
end
class Address < ApplicationRecord
belongs_to :organization
end
다음은 모델 beetween 협회입니다 자신의 주소로 orginization을 저장하려면 조직은 저장되지만 주소는 저장되지 않습니다.
어떻게 조직의 주소를 저장합니까? 문제는 내보기이었다
def new
@organization = Organization.new
@organization.build_address
end
def create
@organization = Organization.new(organization_params)
@organization.save
//...
end
def organization_params
params.require(:organization).permit(:organizationName, :email, :webSite, address_attributes:[:streetNumber, :street, :city, :province, :postalCode])
end
편집 :
여기 내 OrganizationController입니다. 내 양식에 field_for 섹션이 없습니다.
솔루션 :
<%=form.field_for :address do |address_fields| %>
사용중인 레일의 버전? – shoaib
레일즈 버전 5.1.4 –
'ApplicationRecord'의 철자가 잘못되었습니다. 그것의'ActiveRecord :: Base' – Cyzanfar