ActionView::Template::Error (ActiveStorage::InvariableError)
解決したいこと
ここに解決したい内容を記載してください。
コミュニケーションアプリを作成中です。
デプロイ中にエラーが発生してしまったので解決方法を教えていただきたいです。
発生している問題・エラー
```ActionView::Template::Error (ActiveStorage::InvariableError)
該当するソースコード
ActionView::Template::Error (ActiveStorage::InvariableError):
2021-04-18T13:55:18.712175+00:00 app[web.1]: [0de22c32-e2b1-4bec-a14f-b91b83aaf565] 4: <%="投稿日:"+ time_ago_in_words(tweet.created_at) + "前"%>
2021-04-18T13:55:18.712176+00:00 app[web.1]: [0de22c32-e2b1-4bec-a14f-b91b83aaf565] 5: </time>
2021-04-18T13:55:18.712176+00:00 app[web.1]: [0de22c32-e2b1-4bec-a14f-b91b83aaf565] 6: <div class='tweet-img-content'>
2021-04-18T13:55:18.712177+00:00 app[web.1]: [0de22c32-e2b1-4bec-a14f-b91b83aaf565] 7: <%= image_tag tweet.image.variant(resize: '400x400'), class: 'tweet-image' if tweet.image.attached? %>
2021-04-18T13:55:18.712179+00:00 app[web.1]: [0de22c32-e2b1-4bec-a14f-b91b83aaf565] 8: <% if tweet.video.attached? %> <video src="<%= rails_blob_path(tweet.video)%>" type="video/mp4" controls class="tweet-video" ></video>
tweet.rbの現在のvalidateのコード
validate :image_content_type, if: :was_attached?
def image_content_type
extension = ['image/png', 'image/jpg', 'image/jpeg', 'image/GIF','image/BMP']
errors.add(:image, "の拡張子が間違っています") unless image.content_type.in?(extension)
end
validate :video_content_type, if: :has_attached?
def video_content_type
extension = ['video/mp4']
errors.add(:video, "の拡張子が間違っています") unless video.content_type.in?(extension)
end
def was_attached?
self.image.attached?
end
def has_attached?
self.video.attached?
end
自分で試したこと
ネットで参考となる記事を探しました。下記のサイトが対象になるかと思うのですが、
ActiveStorage.variable_content_typesメソッド等を使う表現でどこにどのように記載するかが現状の自分では全く検討がつきませんでした。
別の拡張子で投稿された際のバリデーションをどのように記載するかが肝になるとはわかるのですが...
教えていただきたいです。
宜しくお願いいたします。
https://qiita.com/NedzumiNeko/items/5a40dfaff3502a9a375f
0