2014-03-10 3 views
1

Я действительно не знаю, как спросить, о чем я прошу ... Я бы сказал, если бы знал, что искал!Как добавить заголовок, когда вы не знаете, о чем просите?

Итак, у меня есть набор carrierwave версий изображений имен image00, image01, image02 и т.д. до image25 хранится как:

@photo.main.image00, @photo.main.image01 и т.д ...

Я хочу, чтобы иметь возможность использовать контроллер для вывода этих изображений. Но я понятия не имею, как объединить запрос. У меня есть объективный c, javascript, Ruby и множество других языков, борющихся за место в моей голове, и Ruby, похоже, проиграл!

Я хочу, чтобы иметь возможность сделать звонок, таких как:

@photopiece = Base64.strict_encode64(File.read(@photos.main.imageXX.current_path)) 

, но не имею ни малейшего представления о том, как заменить XX цифры и еще есть файл закодирован.

Я пробовал:

imagestring = "@photos.main.image#{sendPiece}.current_path" 

, а затем

@photopiece = Base64.strict_encode(File.read(imagestring)) 

Но это ничего не делал ... Я почти слышал, компилятор смеется у меня (такова моя паранойя сейчас!)

Итак, как мне получить имена фотографий, чтобы они появлялись в форме:

@photos.main.imageXX.current_path 

так, чтобы они могли разбираться с помощью strict_encode?

Заранее благодарим за помощь! И чтение моих блужданий ...

PS. Извинения за действительно плохой курс! Пожалуйста, измените его, если вы знаете, о чем я прошу!

ответ

0

Может быть, это было бы более безопасным, чем глупые Ev (Params ..):

number_is_safe = !!Float(sendPiece) rescue false 
if number_is_safe 
    path = eval "@photos.main.image#{sendPiece}.current_path" 
    @photopiece = Base64.strict_encode(File.read(path)) 
end 

jvnill предлагает гораздо лучшее решение:

piece = @photos.main.public_send("image#{sendPiece}") 
@photopiece = Base64.strict_encode64(File.read(piece.current_path)) 
+0

Легенда! Большое спасибо за ответ! – Darren

1

Вы можете использовать public_send

piece = @photos.main.public_send("image#{sendPiece}") 
@photopiece = Base64.strict_encode64(File.read(piece.current_path)) 
+0

public_send был для меня новым! Большое спасибо за это! – Vitalyp

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