Mit Rails 4 und Ruby 2.2,Hochladen von Bildern in Show-Seite mit carrierwave
Ich habe Buch als Modell, das Hochladen von Bildern Funktionalität in der Show Seite des Buchs haben sollte. So kann der Benutzer das Buch zuerst erstellen und von der Wiedergabeseite die Bilder für das Buch hochladen. Ich habe Carrierwave als Juwel benutzt und habe ein separates Modell für Image erstellt.
image.rb
class Image < ActiveRecord::Base
belongs_to :book
mount_uploader :avatar, AvatarUploader
end
book.rb
class Book < ActiveRecord::Base
belongs_to :subject, dependent: :destroy
belongs_to :user, dependent: :destroy
has_many :images, dependent: :destroy
end
Bücher/show.html.erb
<%= form_for(Image.new, :html => { :multipart => true }) do |f| %>
<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name %>
<%= hidden_field_tag "image[book_id]", @book.id %>
</div>
<%= f.fields_for :images do |p| %>
<div class="field">
<%= p.label :avatar %><br>
<%= p.file_field :avatar, :multiple => true, name: "images[avatar]" %>
</div>
<%end%>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
schema.rb
create_table "images", force: :cascade do |t|
t.datetime "avatar_updated_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "book_id", limit: 4
t.string "avatar", limit: 255
t.string "name", limit: 255
end
create_table "books", force: :cascade do |t|
t.string "title", limit: 255
t.integer "page_number", limit: 4
t.text "description", limit: 65535
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id", limit: 4
t.integer "subject_id", limit: 4
t.boolean "active", default: false
end
Jetzt bin ich irgendwie nicht mehr mit diesem gehen, kann mir jemand führen auf dieser, weil ich mit Form bin in Bücher/show Seite und ich brauche das Bild auf der gleichen Seite nach erfolgreicher updation der Bilder zu zeigen. (Mehrere Bilder hochgeladen werden können)
michVielen Dank im Voraus
lassen wissen, ob ich weitere Informationen zur Verfügung stellen muss.