私のプロジェクトでは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関連があります彼の住所でオルガンを保存するには、組織は保存されていますが、彼のアドレスは保存されていません。
組織の住所を保存するにはどうすればよいですか?問題は、私の見解だった
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
EDIT:
は、ここに私のOrganizationControllerです。私のフォームにはfield_forセクションは含まれていませんでした。
解決策:使用しているレールのバージョン
<%=form.field_for :address do |address_fields| %>
? – shoaib
Railsバージョン5.1.4 –
「ApplicationRecord」のスペルが間違っています。それは 'ActiveRecord :: Base'です – Cyzanfar