如何在rails中创建包含关联模型字段的视图?
问题描述:
在我的项目中,我有一个Organization
模型和一个Address
模型。这里是模型之间的关联:如何在rails中创建包含关联模型字段的视图?
class Organization < ApplicationRecord
belongs_to :adresse
end
class Organization < ApplicationRecord
has_one :organization
end
我想知道如何创建一个新的表单并包含这两个模型的属性。就目前而言,我的组织/ new.html.erb是这样的:
<%= form_with(model: organization, local: true) do |form| %>
<% if organization.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(organization.errors.count, "error") %> prohibited this organization from being saved:</h2>
<ul>
<% organization.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<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_email %>
</div>
<div class="field">
<%= form.label :website %>
<%= form.text_field :website, id: :organization_website %>
</div>
<div class="actions">
<%= form.submit %>
</div>
<% end %>
我试图将其添加到形式,但地址的方法无法识别:
<div class="field">
<%= form.label :streetNumber %>
<%= form.text_field :organization.address.streetNumber%>
</div>
在控制器,I有机会获得像组织的地址:
@organization.address.streetNumber
PS:我是新来的Rails)
答
这就是fields_for
是。
<%= form_for @person do |person_form| %>
First name: <%= person_form.text_field :first_name %>
Last name : <%= person_form.text_field :last_name %>
<%= fields_for :permission, @person.permission do |permission_fields| %>
Admin? : <%= permission_fields.check_box :admin %>
<% end %>
<%= person_form.submit %>
<% end %>
我是否将其包含在我的实际表单中?像下面的orgazisation字段? –
@ÉmilePettersen-Coulombe:是的,''等等 –
它正在工作,但是当我试图创建一个组织时,它说这个地址必须存在。 –