fix bug.
This commit is contained in:
parent
b54791bb95
commit
29b19bcc43
|
@ -206,7 +206,7 @@ class ApplicationFormSignup
|
|||
return self.cipher_stage_num.index(cipher)
|
||||
end
|
||||
def display_serial_number
|
||||
display_format_string(self.serial_number,4)
|
||||
display_format_string(self.serial_number,4)
|
||||
end
|
||||
def display_format_string(num, str_length)
|
||||
return format("%0#{str_length}d", num)
|
||||
|
@ -227,28 +227,23 @@ class ApplicationFormSignup
|
|||
all_fields = application_form.application_form_signup_field_sets.map do |set|
|
||||
field_name = set.field_name
|
||||
next if set.disabled || except_fields.include?(field_name)
|
||||
value = self.send(field_name) rescue nil
|
||||
localize = self.fields[field_name].options[:localize]
|
||||
|
||||
value = self.respond_to?(field_name) ? self.send(field_name) : nil
|
||||
field = self.fields[field_name] rescue nil # 先检查字段是否存在
|
||||
next if field.nil? # 防止 nil 出现
|
||||
|
||||
localize = field.options&.dig(:localize) # 安全调用
|
||||
next if value.nil? && !localize
|
||||
|
||||
if field_name == "status"
|
||||
value = I18n.t("application_form.registration_status_#{value}")
|
||||
elsif localize && field_name != "unit"
|
||||
values = self.send("#{field_name}_translations").select{|k,v| v.present?}
|
||||
value = ""
|
||||
if values.count == 0
|
||||
next
|
||||
elsif values.count == 1
|
||||
value = values.values.first
|
||||
else
|
||||
last_idx = values.count - 1
|
||||
values.each_with_index do |(l, v), i|
|
||||
value += (I18n.t(l) + ": " + v )
|
||||
if i != last_idx
|
||||
value += "<br>"
|
||||
end
|
||||
end
|
||||
end
|
||||
values = self.send("#{field_name}_translations").select { |_, v| v.present? }
|
||||
next if values.empty?
|
||||
|
||||
value = values.map { |l, v| "#{I18n.t(l)}: #{v}" }.join("<br>")
|
||||
end
|
||||
|
||||
{
|
||||
"field_name"=>field_name,
|
||||
"title"=>set.name[locale],
|
||||
|
@ -259,44 +254,35 @@ class ApplicationFormSignup
|
|||
field_names = self.class::DefaultEnableFields
|
||||
all_fields = field_names.map do |field_name|
|
||||
next if except_fields.include?(field_name)
|
||||
value = self.send(field_name) rescue nil
|
||||
next if value.nil?
|
||||
|
||||
value = self.respond_to?(field_name) ? self.send(field_name) : nil
|
||||
field = self.fields[field_name] rescue nil
|
||||
next if field.nil?
|
||||
|
||||
field_name_trans = I18n.t("application_form_signup.#{field_name}")
|
||||
|
||||
if field_name == "status"
|
||||
I18n.t("application_form.registration_status_#{value}")
|
||||
elsif self.fields[field_name].options[:localize]
|
||||
values = self.send("#{field_name}_translations").select{|k,v| v.present?}
|
||||
value = ""
|
||||
if values.count == 0
|
||||
next
|
||||
elsif values.count == 1
|
||||
value = values.values.first
|
||||
else
|
||||
last_idx = values.count - 1
|
||||
values.each_with_index do |(l, v), i|
|
||||
value += (I18n.t(l) + ": " + v )
|
||||
if i != last_idx
|
||||
value += "<br>"
|
||||
end
|
||||
end
|
||||
end
|
||||
value = I18n.t("application_form.registration_status_#{value}")
|
||||
elsif field.options&.dig(:localize)
|
||||
values = self.send("#{field_name}_translations").select { |_, v| v.present? }
|
||||
next if values.empty?
|
||||
|
||||
value = values.map { |l, v| "#{I18n.t(l)}: #{v}" }.join("<br>")
|
||||
end
|
||||
{
|
||||
"field_name"=>field_name,
|
||||
"title"=> field_name_trans,
|
||||
"value"=> value
|
||||
}
|
||||
end.compact
|
||||
|
||||
{
|
||||
"field_name" => field_name,
|
||||
"title" => field_name_trans,
|
||||
"value" => value
|
||||
}
|
||||
end.compact
|
||||
|
||||
end
|
||||
application_form.application_form_signup_fields.asc(:_id).each do |rf|
|
||||
application_form_signup_value = rf.application_form_signup_values.where(:application_form_signup_id=>self.id).last
|
||||
if application_form_signup_value
|
||||
value = application_form_signup_value.get_field_value rescue nil
|
||||
if value
|
||||
all_fields << value
|
||||
end
|
||||
end
|
||||
value = rf.application_form_signup_values.where(application_form_signup_id: self.id).last&.get_field_value
|
||||
all_fields << value if value.present?
|
||||
end
|
||||
|
||||
return all_fields
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue