При обновлении части _form, которая имеет изображение, но не изображение, я получаю сообщение об ошибке
Я использую Carrierwave & Fog для передачи изображений str8 на S3.
Действие создания работает просто отлично. Проблема в том, что когда я иду обновить запись, скажем, изменить name
атрибут, и я ничего не делаю с полями изображения, я получаю ошибку, которая выглядит следующим образом:
Started PUT "/vendors/7" for 67.230.41.62 at 2012-12-09 07:00:51 +0000
2012-12-09T07:00:51+00:00 app[web.1]: app/controllers/vendors_controller.rb:65:in `update'
2012-12-09T07:00:51+00:00 app[web.1]: NoMethodError (undefined method `thumb_image_changed?' for #<Vendor:0x00000005940750>):
2012-12-09T07:00:51+00:00 app[web.1]:
2012-12-09T07:00:51+00:00 app[web.1]: app/controllers/vendors_controller.rb:66:in `block in update'
мой VendorsController#update
выглядит нормально:
def update
@vendor = Vendor.find(params[:id])
respond_to do |format|
if @vendor.update_attributes(params[:vendor])
format.html { redirect_to @vendor, notice: 'Vendor was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @vendor.errors, status: :unprocessable_entity }
end
end
конец
Оскорбительная линия update_attributes
,
Это мое views/vendors/_form.html.erb
<%= simple_form_for(@vendor) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<div class="span8">
<%= f.input :name, :label => "Vendor Name", :wrapper_html => { :class => "span6" } %>
</div>
<div class="span8">
<%= f.input :intro_text, :label => "The headline for your storefront", :as => :text, :wrapper_html => { :class => "span6" }, :input_html => { :rows => 1 } %>
</div>
<div class="span8">
<%= f.input :description, :label => "The description of your store", :as => :text, :wrapper_html => { :class => "span6" }, :input_html => { :rows => 5 } %>
</div>
<div class="span8">
<%= f.input :banner_image, :label => "Upload Banner", :wrapper_html => { :class => "span6" } %>
</div>
<div class="span8">
<%= f.input :logo_image, :label => "Upload Logo", :wrapper_html => { :class => "span6" } %>
</div>
<div class="span8">
<%= f.button :submit, :class => "btn", :wrapper_html => { :class => "span6" } %>
</div>
</div> <!-- /.form-inputs -->
<% end %>
Для чего это стоит, один из размеров изображения в моем image_uploader.rb
является thumb
:
version :thumb, :from_version => :main_banner do
process :resize_to_limit => [170, 120]
end
Мысли о том, как я могу это исправить?
Редактировать 1
Vendor
модель:
class Vendor < ActiveRecord::Base
attr_accessible :name, :description, :banner_image, :logo_image, :intro_text, :thumb_image
mount_uploader :banner_image, ImageUploader
mount_uploader :logo_image, ImageUploader
mount_uploader :thumb_image, ImageUploader
acts_as_tagger
has_many :products
def tags
self.owned_tags
end
def taggings
self.owned_taggings
end
end
Изменить 2:
Это то, что схема для моего Vendor
Стол выглядит так:
create_table "vendors", :force => true do |t|
t.string "name"
t.text "description", :limit => 255
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "banner_image"
t.string "logo_image"
t.string "intro_text"
end
1 ответ
Оказывается, мне пришлось убрать звонок mount_uploader :thumb_image
на моем Vendor
модель, потому что у меня не было столбца под названием thumb_image
на этой модели.