2015-05-31 2 views
0

Учитывая следующий результат от f.object.filename.inspect от формы. И я использую carrierwave.Как получить доступ к облачным атрибутам в рельсах?

$> <CarPhotoUploader:0x007f83efa788f0 
    @model=#<CarPhoto id: 19, filename: "image/upload/v1433056939/eio6d7b0dtfdjptmxud4.png", car_id: 19, document: nil, created_at: "2015-05-31 07:22:04", updated_at: "2015-05-31 07:26:45">, 
    @mounted_as=:filename, 
    @transformation={}, 
    @file=#<Cloudinary::CarrierWave::CloudinaryFile:0x007f83efa786e8 
     @uploader=#<CarPhotoUploader:0x007f83efa788f0 ...>, 
    @identifier="image/upload/v1433056939/eio6d7b0dtfdjptmxud4.png", 
    @resource_type="image", 
    @storage_type="upload", 
    @version="1433056939", 
    @filename="eio6d7b0dtfdjptmxud4.png", 
    @public_id="eio6d7b0dtfdjptmxud4", 
    @format="png">, 
    @stored_public_id="eio6d7b0dtfdjptmxud4", 
    @public_id="eio6d7b0dtfdjptmxud4", 
    @stored_version="1433056939", 
    @original_filename="eio6d7b0dtfdjptmxud4.png"> 

Мне нужно получить доступ к @public_id, но я не могу получить что-нибудь, но nil когда я

f.object.filename.public_id.

Что мне делать?

+0

Попробуйте 'f.object.file.public_id.' –

+0

nope, он возвращает' undefined method 'file 'для # '. –

+0

хорошо .. что такое вывод 'f.object.filename.class'? –

ответ

2

f.object.filename.public_id дает nil.

Потому что это то, как они реализованы. Посмотрите там source code.

Что вы хотите, это my_public_id.

Таким образом, рабочий код: f.object.filename.my_public_id.

+0

Я считаю, что 'f.object.filename.file.public_id' должен также работать –

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