fix saving of subproject_address
This commit is contained in:
@@ -18,6 +18,7 @@ class ProjectsController < ApplicationController
|
||||
subproject.build_client
|
||||
subproject.build_owner
|
||||
subproject.build_builder
|
||||
subproject.build_subproject_address
|
||||
end
|
||||
end
|
||||
|
||||
@@ -66,6 +67,7 @@ class ProjectsController < ApplicationController
|
||||
private
|
||||
|
||||
CLIENT_FIELDS = [:company_name, :firstname, :lastname, :streetname, :zipcode, :city, :country, :email, :phone]
|
||||
SUBPROJECT_ADDRESS_FIELDS = [:streetname, :zipcode, :city, :country]
|
||||
|
||||
# Use callbacks to share common setup or constraints between actions.
|
||||
def set_project
|
||||
@@ -80,7 +82,8 @@ class ProjectsController < ApplicationController
|
||||
:id, :subproject_name, :client_id, :owner_id, :builder_id, :_destroy,
|
||||
client_attributes: CLIENT_FIELDS,
|
||||
owner_attributes: CLIENT_FIELDS,
|
||||
builder_attributes: CLIENT_FIELDS
|
||||
builder_attributes: CLIENT_FIELDS,
|
||||
subproject_address_attributes: SUBPROJECT_ADDRESS_FIELDS
|
||||
]
|
||||
)
|
||||
end
|
||||
|
||||
@@ -5,12 +5,11 @@ class Subproject < ApplicationRecord
|
||||
belongs_to :client, class_name: 'Client', optional: true
|
||||
belongs_to :owner, class_name: 'Client', optional: true
|
||||
belongs_to :builder, class_name: 'Client', optional: true
|
||||
belongs_to :subproject_addresses, optional: true
|
||||
|
||||
accepts_nested_attributes_for :client, reject_if: ->(attrs) { attrs['id'].present? || attrs.values.all?(&:blank?) }
|
||||
accepts_nested_attributes_for :owner, reject_if: ->(attrs) { attrs['id'].present? || attrs.values.all?(&:blank?) }
|
||||
accepts_nested_attributes_for :builder, reject_if: ->(attrs) { attrs['id'].present? || attrs.values.all?(&:blank?) }
|
||||
accepts_nested_attributes_for :subproject_addresses, allow_destroy: true, reject_if: ->(attrs) { attrs['id'].present? || attrs.values.all?(&:blank?) }
|
||||
accepts_nested_attributes_for :subproject_address, allow_destroy: true, reject_if: ->(attrs) { attrs['id'].present? || attrs.values.all?(&:blank?) }
|
||||
|
||||
|
||||
validates :subproject_name, presence: true
|
||||
|
||||
@@ -41,8 +41,23 @@
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="subproject-address-fields">
|
||||
|
||||
<fieldset>
|
||||
<legend>Address</legend>
|
||||
<%= sp_form.fields_for :subproject_address do |spaddress_form| %>
|
||||
<% [:streetname, :zipcode, :city, :country].each do |attrib| %>
|
||||
<%= spaddress_form.label attrib %>
|
||||
<%= spaddress_form.text_field attrib %><br>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= form.submit %>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user