2016-08-22 25 views
0

URLで画像を取得する必要があります。Carrierwave urlで画像を取得

URLはhttp://img.wallsbay.com/large/2014/05/2665.jpgですが、2014と2665は変更されています。

def image_params 
    params.require(:image).permit(:content, :remote_content_url, :id) 
    end 

を、私は、このようなURLから画像を取得しようとしました::

私のコントローラは、これはparamsはい

@image.remote_content_url = 'http://img.wallsbay.com/large/#{:content}/05/#{:id}jpg' 

しかしremote_content_urlが未定義のメソッドです。

答えて

1

私はattr_accessor :remote_content_urlをイメージモデルに追加してこの問題を解決しました。

0

画像URLを取得する正しい方法は、となります。contentは、Carrierwaveに使用している属性です。

+0

うん、私は知っているが、私はそれのようなものを望んでいる:https://github.com/carrierwaveuploader/carrierwave/wiki/How-to:-Upload-remote-image-urls-to-your-seedfile – Salanoid

0

remote_<attr_name>_urlの属性は、指定されたURLで画像をアップロードすることです。

@model.remote_content_url = "http://img.wallsbay.com/large/2014/05/2665.jpg" 
@model.save 
@model.content_url // => "<upload-dir>/2665.jpg" 

アップロードした画像のURLを取得するには、@model.content_urlを使用してください。

変換を適用するには、@model.content_url(:square)を使用します。

+0

アップロードしたい複数の画像がありますが、私はremote_ _urlを使用できません。 – Salanoid

+0

このようにCarrierwaveはマルチアップロードを処理しません。 Youllは各画像のレコードを作成する必要があります。私はこれを達成するために[dropzone.js](http://www.dropzonejs.com/)の使用を検討したいと思います。 – codyeatworld

+0

私は今すぐdropzone.jsは必要ありません。 remote_content_urlを使用する必要がありますが、定義されていません。 – Salanoid