2012-12-31 18 views
5

Używam klejnotu redactor_rails z carrierwave. Są dwa miejsca, w których potrzebuję edytora tekstu z przesyłaniem obrazów i chcę ustawić inny rozmiar obrazu dla każdego edytora.szyny redaktora i carrierwave - rozmiary obrazu

Jeśli używam wersji to mam dwa rozmiary dla każdego zdjęcia i nie wiem jak zmienić wersję obrazu w polu tekstowym.

Główną ideą jest, aby uruchomić to jest własny proces zmiany rozmiaru dla każdego edytora przesyłającej w redactor_rail_picture_uploader

Jak mam to zrobić?

+0

Wygląda na to, że nie można tego zrobić. Musiałem zastąpić niektóre metody klejnotów, aby działały. – barba

+0

Czy możesz odpowiedzieć na twoje pytanie rozwiązaniem i kodem? Chciałbym również to zrobić i możesz, niż zaakceptować swoją odpowiedź .. –

Odpowiedz

2

Może to nie jest doskonały sposób, ale działa.

Zrobiłem kilka wersji plików przesłanych w: redactor_rails_picture_uploader.rb

version :item_text do 
    process :resize_to_limit => [478, 478] 
end 

version :thumb do 
    process :resize_to_fill => [100, 100] 
end 

Utworzono inicjatora i nowo metodę 'Utwórz' klasy RedactorRails :: PicturesController tam. Teraz zapisuje wersję, którą przekazuję wraz z formularzem, za pomocą parametru "wersja".

RedactorRails::PicturesController.class_eval do 
    def create 
    @picture = RedactorRails::Picture.new 

    file = params[:file] 
    version = params[:version] 

    @picture.data = RedactorRails::Http.normalize_param(file, request) 
    if @picture.respond_to?(:user_id) 
     @picture.user = current_user 
     @picture.assetable = current_user 
    end 

    if @picture.save 
     if version 
     file_link = @picture.send(:url, version) 
     else 
     file_link = @picture.url 
     end 

     render :text => { :filelink => file_link }.to_json 

    else 
     render :nothing => true 
    end 
    end 
end 

Wreszcie dodaje ukryte wejście z wartością wersji z przesyłającej Chcę zapisać w tej postaci:

%input{:id => 'redactor_version', :value => 'item_text', :type => 'hidden'} 

coś takiego.

+0

hi @barba, czy mógłbyś wyjaśnić, w jaki sposób zaimplementowałeś Redactor w bogatym polu tekstowym w aplikacji Ruby on Rails. Próbowałem, ale nie mogłem uzyskać oczekiwanej wydajności. każda sugestia byłaby doceniana. –

+1

Po prostu załadowano moduł redaktora js i ustawiono klasę "redactor" dla obszaru tekstowego. – barba

Powiązane problemy