mam tej klasy do przesyłaniawarunkowe wersje/proces z Carrierwave
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
process :resize_to_limit => [300, 300]
version :thumb do
process :resize_to_limit => [50, 50]
end
...
Który będzie przetwarzać oryginalny plik do 300x300 i zapisać wersję kciuka.
Chciałbym być w stanie zrobić małą/kciuk wersji tylko w oparciu o boolean w moim modelu?
Więc zrobiłem to
if :icon_only?
process :resize_to_limit => [50, 50]
else
process :resize_to_limit => [300, 300]
end
protected
def icon_only? picture
model.icon_only?
end
Ale zawsze kończyło się na przetwarzanie 50x50. Nawet kiedy nie podoba Ci się to
def icon_only? picture
false
end
może mam mój składnia się wszystko w porządku z: ale próbowałem też z prośbą
if icon_only?
Który powiedział mi, że nie nazwa metody jak that.Im utracone. ..
mam tę część roboczą proces: resize_to_limit => [50, 50]: if =>: icon_only? proces: resize_to_limit => [300, 300],: if =>!: Icon_only? Ale zawsze tworzy wersję kciuka, nawet jeśli nie podano wersja: kciuk,: unless =>: icon_only? wersja: kciuk do proces: resize_to_limit => [50, 50] koniec – Jepzen
Nie sądzę, że ': if =>!: Icon_only?' Będzie działać. Zdefiniuj inną funkcję ': not_icon_only?' Lub użyj procesu: 'process: resize_to_limit => [300, 300],: if => Proc.new {! Icon_only? } '. Jesteś także pewien, że twoja metoda 'icon_only?' Faktycznie działa? Zajmuje argument 'obrazek', ale potem wywołujesz' icon_only? 'Na' modelu'. –
Wydawało się, że to bałagan, więc zrobiłem kolejną klasę dla uploadera tylko dla mojej ikony. Mój icon_only? metoda (na modelu) nie zajęła również nowo przypisanej wartości, a jedynie wartość domyślna z tabeli, więc nawet jeśli mam logikę do pracy, nie wiem jak mogę określić, czy powinna to być tylko ikona lub nie. Dzięki za pomoc. – Jepzen