diff --git a/app/models/passport.rb b/app/models/passport.rb index ed1f998..4df0189 100644 --- a/app/models/passport.rb +++ b/app/models/passport.rb @@ -20,10 +20,6 @@ class Passport < ApplicationRecord validates :unit_code, presence: true validates :date_of_issue, presence: true - validate do - errors.add :image, :blank unless image.attached? - end - before_validation do self.patronymic = nil if patronymic.blank? end diff --git a/app/views/passports/show.html.erb b/app/views/passports/show.html.erb index 806d174..7f4f144 100644 --- a/app/views/passports/show.html.erb +++ b/app/views/passports/show.html.erb @@ -137,8 +137,10 @@ -
- <%= image_tag url_for(@passport.image), class: 'img-fluid' %> -
+ <% if @passport.image.attached? %> +
+ <%= image_tag url_for(@passport.image), class: 'img-fluid' %> +
+ <% end %> diff --git a/factories/passports.rb b/factories/passports.rb index 675600a..f6f81c0 100644 --- a/factories/passports.rb +++ b/factories/passports.rb @@ -2,13 +2,6 @@ FactoryBot.define do factory :passport do - transient do - image_filename { image_fixture } - image_fixture { "passport_image_#{rand(1..4)}.jpg" } - - image_path { Rails.root.join 'fixtures', image_fixture } - end - confirmed { false } surname { Faker::Name.last_name } @@ -24,6 +17,15 @@ FactoryBot.define do "#{rand(0..999).to_s.rjust(3, '0')}-#{rand(0..999).to_s.rjust(3, '0')}" end date_of_issue { Faker::Date.backward } + end + + factory :passport_with_image, parent: :passport do + transient do + image_filename { image_fixture } + image_fixture { "passport_image_#{rand(1..4)}.jpg" } + + image_path { Rails.root.join 'fixtures', image_fixture } + end after :build do |passport, evaluator| passport.image.attach( @@ -33,7 +35,7 @@ FactoryBot.define do end end - factory :confirmed_passport, parent: :passport do + factory :confirmed_passport, parent: :passport_with_image do confirmed { true } end end diff --git a/spec/requests/passports/show_spec.rb b/spec/requests/passports/show_spec.rb index e2a2720..67bcb9c 100644 --- a/spec/requests/passports/show_spec.rb +++ b/spec/requests/passports/show_spec.rb @@ -12,4 +12,20 @@ RSpec.describe 'GET /passports/:id' do specify do expect(response).to have_http_status :ok end + + context 'when passport has an image' do + let!(:passport) { create :passport_with_image } + + specify do + expect(response).to have_http_status :ok + end + end + + context 'when passport is confirmed' do + let!(:passport) { create :confirmed_passport } + + specify do + expect(response).to have_http_status :ok + end + end end