Jump to content

The ultimate community for Ruby on Rails developers.


Photo

ActiveRecord::UnknownAttributeError

ruby on rails carrierwave nested_forms

  • Please log in to reply
1 reply to this topic

#1 yozzz

yozzz

    Passenger

  • Members
  • 2 posts

Posted 27 September 2013 - 07:00 PM

Hello guys, I hope somebody help me,

http://stackoverflow...nattributeerror



#2 yozzz

yozzz

    Passenger

  • Members
  • 2 posts

Posted 27 September 2013 - 08:52 PM

I'm trying to create hotel with some fields, one of the fields is photo, i want to use multiple files upload with carrierwave and nested_form. I found this article and have some result.

When i'm on /hotels/new, filling fields, choosing photos and press submit, gettingActiveRecord::UnknownAttributeError in HotelsController#create unknown attribute: attachable_type. Console

Started POST "/hotels" for 127.0.0.1 at 2013-09-27 17:35:18 +0300
Processing by HotelsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"+1T2tuygSnj8unOKkXkRWI4L7KvDE
9PPHrqvag7KmIQ=", "hotel"=>{"title"=>"dsa", "address"=>"asd", "star_rating"=>"2"
, "breakfast"=>"Not include", "price_for_room"=>"sadas", "room_description"=>"Gr
eat room", "attachments_attributes"=>{"1380289954031"=>{"file"=>#<ActionDispatch
::Http::UploadedFile:0xa5d546c @original_filename="11374.jpg", @content_type="im
age/jpeg", @headers="Content-Disposition: form-data; name=\"hotel[attachments_at
tributes][1380289954031][file]\"; filename=\"11374.jpg\"\r\nContent-Type: image/
jpeg\r\n", @tempfile=#<File:/tmp/RackMultipart20130927-7077-50zkol>>, "_destroy"
=>"false"}, "1380289972216"=>{"file"=>#<ActionDispatch::Http::UploadedFile:0xa5d
53a4 @original_filename="357175.jpg", @content_type="image/jpeg", @headers="Cont
ent-Disposition: form-data; name=\"hotel[attachments_attributes][1380289972216][
file]\"; filename=\"357175.jpg\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#<F
ile:/tmp/RackMultipart20130927-7077-dlkmwk>>, "_destroy"=>"false"}}}, "commit"=>
"Done"}
Completed 500 Internal Server Error in 109ms

ActiveRecord::UnknownAttributeError (unknown attribute: attachable_type):
app/controllers/hotels_controller.rb:15:in `new'
app/controllers/hotels_controller.rb:15:in `create'
...

Model hotel.rb

class Hotel < ActiveRecord::Base
  attr_accessible :address, :breakfast, :price_for_room, :room_description,
                  :star_rating, :title, :attachments_attributes

  has_many :attachments, :as => :attachable
  accepts_nested_attributes_for :attachments
end

Model attachment.rb

class Attachment < ActiveRecord::Base
  attr_accessible :file
  belongs_to :attachable, :polymorphic => true
  mount_uploader :file, FileUploader
end

hotels_controller.rb

...
def new
  @hotel = Hotel.new
end
def create
  @hotel = Hotel.new(params[:hotel])
  if @hotel.save
    redirect_to hotels_path, notice: "Nice, you added new hotel " + @hotel.title
  else
    render "new"
  end 
end

_form.rb

<%= nested_form_for @hotel, :html => {:multipart => true} do |f| %>
...
  <%= f.fields_for :attachments do |attachment_form|%> 
    <%= attachment_form.label :file %>
    <%= attachment_form.file_field :file %>
    <%= attachment_form.link_to_remove "Remove this photo" %>
  <% end %>
  <%= f.link_to_add "Add photo", :attachments %>
  <%= f.submit 'Done', class: 'btn btn-success' %>
<% end %>

Any ideas guys? What am I doing wrong here?







Also tagged with one or more of these keywords: ruby on rails, carrierwave, nested_forms

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users