Class: Infold::FormAssociationsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/infold/form_associations_controller.rb

Instance Method Summary collapse

Instance Method Details

#showObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/infold/form_associations_controller.rb', line 4

def show
  @form_association = FormAssociation.find(params[:id])
  @view = @form_association.app_view
  @app = @view.app
  first_time = @form_association.form_association_fields.blank?
  @form_association.model_association.model.columns.sort_by(&:seq).each do |column|
    next if column.is_foreign_key? && column.model_association.parent_model == @form_association.app_view.model
    if @form_association.form_association_fields.find { |r| r.model_column_id == column.id }.blank?
      @form_association.form_association_fields.build(
        type: FormAssociationColumn.name,
        seq: @form_association.form_association_fields.size,
        model_column: column,
        display: first_time && !column.is_primary_key? && !column.is_timestamp_field?)
    end
  end
  @form_association.model_association.model.attachment_fields.each do |attachment_field|
    if @form_association.form_association_fields.find { |r| r.attachment_field_id == attachment_field.id }.blank?
      @form_association.form_association_fields.build(
        type: FormAssociationAttachmentField.name,
        seq: @form_association.form_association_fields.size,
        attachment_field: attachment_field,
        display: first_time)
    end
  end
end

#updateObject



30
31
32
33
34
35
36
37
38
39
40
41
# File 'app/controllers/infold/form_associations_controller.rb', line 30

def update
  @form_association = FormAssociation.find(params[:id])
  @form_association.assign_attributes(post_params)
  if @form_association.save_with_associations
    redirect_to @form_association, flash: { info: t('infold.flash.updated') }
  else
    @view = @form_association.app_view
    Rails.logger.debug "エラー #{@form_association.errors.full_messages}"
    flash.now[:warning] = t('infold.flash.invalid')
    render status: :unprocessable_entity
  end
end