2015-04-13 3 views
0

Я еще не очень хорош в рельсах, и я пытаюсь собрать подписи пользователя в конце формы. У меня есть форма, показанная на мой взгляд, только сейчас, но я не знаю, с чего начать преобразовывать ее в изображение.Реализовать подписи подписи Thomas J Bradley Ruby on Rails Carrierwave

На документации для Signature Pad он предлагает использовать этот код:

instructions = JSON.load(data).map { |h| "line #{h['mx']},#{h['my']} #{h['lx']},#{h['ly']}" } * ' ' 
system "convert -size 198x55 xc:transparent -stroke blue -draw '#{instructions}' signature.png" 

, но он не имеет никаких документов о том, где/как использовать его.

Я помещаю это в свою функцию создания? Как мне заставить его работать с камкордером-носителем несущей?

Спасибо!

ответ

1

Я действительно смог проработать это. Вот что я сделал.

В контроллере создать метод, который я добавил этот код перед @ model.save

instructions = JSON.parse(params[:output]).map { |h| "line #{h['mx'].to_i},#{h['my'].to_i} #{h['lx'].to_i},#{h['ly'].to_i}" } * ' ' 
tempfile = Tempfile.new(["signature", '.png']) 
Open3.popen3("convert -size 600x100 xc:transparent -stroke blue -draw @- #{tempfile.path}") do |input, output, error| 
    input.puts instructions 
end 
@yourmodel.signature = tempfile 

Для этого, чтобы работать, конечно, вы должны быть установлен Carrierwave камень, а затем настроить загрузчик, как это. В терминале:

rails generate uploader Signature 

В модели вы загружаете на:

mount_uploader :signature, SignatureUploader 

Надежда, что помогает кто-то с той же проблемой.

Смежные вопросы