質問

私は、ファイルのURLを取得するpublic_filename方法を提供Attachment_fuと私のRailsアプリで添付ファイルを処理しています。 I私はどうなるの見解では、アップロードされた表紙画像のURLを呼び出したいので、もし、カバーと呼ばれるモデルでそれを使用しています:

<%= image_tag(@cover.public_filename) %>

これは、ユーザーが適切な添付ファイルを持っているときだけ正常に動作しますが、私のアプリケーションでは、添付ファイルをアップロードするユーザーの要件ではありません。

そのため、TypeError例外がスローされます@cover.public_filenameを呼び出す:ファイルがnilであることを明白な理由のための文字列にnilを変換できません。

しかし、私はトラブルのオブジェクトがnilである事実から、この問題にロジックを追加することを抱えている、とunless @cover.public_filename.nil?またはif @cover.public_filename == nilのようなものをやってと私の試みのすべては無益されていると同じタイプエラーを引き起こします。

私は何をしないのですか?

役に立ちましたか?

解決

私はattachment_fuでは動作しませんでしたが、私が見るようにpublic_filenameは、添付ファイルが取り付けられていないときはnilある一部のフィールドに依存している方法があります。 ここで私はattachment_fuは常に持っている必要があることを読んする添付ファイル - これはおそらく、それはあなたのために動作しなかった理由です。著者はまた、クリップのプラグインを使用することをお勧め。それを見てみましょう!

他のヒント

<%= image_tag(@cover.public_filename) unless @cover.nil? %>

は申し訳ありませんが、コメントすることはできませんので、ここでの更新ですの代わりに:

@cover.public_filename?@coverオブジェクトであり、そのような何らnilメソッドを持っていないので、public_filename?が、ここでは動作しません。

nil.respond_to?('public_filename?') #=> false

更新:

それを確認します:

<%= image_tag(@cover.public_filename) if @cover && @cover.public_filename? %>

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top