के लिए "अनुपलब्ध आवश्यक: बाल्टी विकल्प" मेरे रेल ऐप में मैं उपयोगकर्ताओं को "रिलीज" बनाते समय एक छवि अपलोड करने देता हूं, और इसे सीधे S3 पर अपलोड करना चाहिए। मुझे विकास और उत्पादन दोनों में निम्नलिखित त्रुटि मिल रही है।पेपरक्लिप/एस 3
संपादित करें: मुझे ध्यान रखना चाहिए कि यह त्रुटि तब सबमिट होती है जब रिलीज संपादन पृष्ठ से फ़ॉर्म सबमिट पर अपलोड करने का प्रयास किया जाता है।
ArgumentError in ReleasesController#update
missing required :bucket option
Rails.root: /Users/jasondemeuse/pressed
मैं Carrierwave का उपयोग कर कोई मुद्दों के साथ पहले इस किया है, लेकिन समझ नहीं मैं गलत क्या कर रही हूं कि अब मैं पेपरक्लिप उपयोग कर रहा हूँ। एसओ और अन्य जगहों पर मैंने जो भी फिक्स्ड देखा है, वह हुकोकू मुद्दे हैं, लेकिन मुझे विकास पर एक ही समस्या हो रही है और किसी भी फिक्स ने मदद नहीं की है। (प्रासंगिक के टुकड़े इंगित करता है "..." नहीं)
यहाँ प्रासंगिक कोड है:
development.rb
Appname::Application.configure do
...
config.paperclip_defaults = {
:storage => :s3,
:s3_protocol => 'http',
:s3_credentials => {
:bucket => ENV['AWS_BUCKET'],
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
}
end
production.rb
Appname::Application.configure do
...
config.paperclip_defaults = {
:storage => :s3,
:s3_protocol => 'http',
:s3_credentials => {
:bucket => ENV['AWS_BUCKET'],
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
}
end
रिहाई । आरबी
class Release < ActiveRecord::Base
attr_accessible ... :banner
belongs_to :user
has_attached_file :banner, styles: {
thumb: '100x100>',
square: '200x200#',
medium: '300x300>',
spread: '1200x200'
}
has_many :banners, :dependent => :destroy
accepts_nested_attributes_for :banners, :allow_destroy => true
end
show.html.erb
<%= image_tag @release.banner.url(:medium) %>
<%= @release.banner.url %>
// Have both of these in for now to see if they work, but since the upload isn't working it's giving me the missing.png
_form.html.erb
<%= f.label "Add A Banner?" %><br />
<%= f.file_field :banner %>
Heroku config (विकास के लिए .bash_profile में एक ही है)
AWS_ACCESS_KEY_ID: XXXXXXXXXXXXXXXX
AWS_BUCKET: appname
AWS_SECRET_ACCESS_KEY: XXXXXXXXXXXXXXXXXXXXXXXXXXX
संपादित करें: यहाँ मेरी नियंत्रक के अपने प्रासंगिक हिस्सा है भी
def update
@release = Release.find(params[:id])
respond_to do |format|
if @release.update_attributes(params[:release])
format.html { redirect_to [@user,@release], notice: 'Release was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @release.errors, status: :unprocessable_entity }
end
end
end
मैं इस अत्यंत सरल होना चाहिए और मुझे यकीन है कि मैं सिर्फ कुछ स्पष्ट भूल गया हूँ, लेकिन मैं this walkthrough पर जाने दिया गया है पता साथ ही साथ जो फिक्स मैंने पाया है और कुछ भी काम नहीं करता है। क्या कोई रेक कार्य या बंडल है जिसे मैं चलाने या भूलना भूल गया?
अग्रिम धन्यवाद!
संपादित करें 2: नीचे जवाब मुझे बाहर एक बहुत मदद की, और मेरे लिए fog
मणि तय सबसे चीजों का उपयोग करने जा। अगर दूसरों को ये वही समस्याएं हो रही हैं, तो मुझे भी एक और समस्या थी जो इसे मेरे लिए भ्रमित कर रही थी। यदि आपके पास Heroku समस्याएं हैं और Paperclip::PaperclipError (Item model missing required attr_accessor for 'image_file_name'):
हैं, तो सुनिश्चित करें कि आप heroku rake db:migrate
चलाएं और फिर 0okuके साथ उसकेोकू को पुनरारंभ करें। मैंने अपनी स्कीमा लोड की और गलत तरीके से माना कि मुझे ऐसा करने की आवश्यकता नहीं है।
उपर्युक्त can be found here के साथ एक SO उत्तर।
पेपरक्लिप का कौन सा संस्करण आप उपयोग कर रहे हैं? – gregates
3.4.2 - मेरे पास जेमफाइल में 'मणि "पेपरक्लिप", "~> 3.0" है। – Jason
मुझे लगता है कि कोशिश करने के लिए एक चीज 'AWS_BUCKET = appname रेल सर्वर' चलाएं और देखें कि क्या आपको अभी भी त्रुटि मिलती है या नहीं। – gregates