私はcarrierwaveを画像アップロードに使用していますが、image_uploader.rbのvar 'current_user'へのアクセス権がないため、性別に基づいてデフォルトの画像を設定できません画像のURLは(作成または更新後に)nilですが、そこには問題がありますか?デフォルトの画像を性別に合わせて設定 - Carrierwave&Device
アップローダ/ image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base
def default_url
if (current_user.gender == "Male")
ActionController::Base.helpers.asset_path("fallback/" + [version_name, "male.PNG"].compact.join('_'))
else
ActionController::Base.helpers.asset_path("fallback/" + [version_name, "female.PNG"].compact.join('_'))
end
end
end
'model.gender.downcase'ではないでしょうか? Uploadedは 'model'メソッドで呼び出しレコードにアクセスすると信じています。 – Genzume
'default_url'メソッドに渡される' gender'引数は文字列です。私はユーザオブジェクトを渡すのではなく、 'gender'の値だけを渡しています。 – mmichael
ああ、今私はそれを参照してください。私はこの答えが好きです。それはきれいで簡潔です。 – Genzume