Ich arbeite an meinem ersten Rails-Projekt und habe die Paperclip Gem installiert, um Image-Uploads zu behandeln. So wie es ist, funktioniert es gut, aber alle Upload-Felder werden angezeigt, um separat ausgefüllt zu werden, wie in dem Screenshot unten zu sehen ist.Umwandlung aller Eingabefelder in eine Schaltfläche mit Paperclip Gem in Ruby on Rails
Unten ist mein Code wie bei allen Bildeingabefelder einzeln ausgebrochen.
models/project.rb
class Project < ApplicationRecord
has_many :tasks
validates :name, presence: true, length: { maximum: 50 }
validates :content, presence: true, length: { maximum: 500 }
validates :price, presence: true, numericality: { only_integer: true }
has_attached_file :avatar, styles: { medium: '680x300>', thumb: '170x75>' }, default_url: '/images/:style/missing.png"'
validates_attachment_content_type :avatar, content_type: '/\Aimage\/.*\z/'
end
admin/project.rb
ActiveAdmin.register Project do
permit_params :name, :content, :price, :image
show do |t|
attributes_table do
row :name
row :content
row :price
row :image do
project.image? ? image_tag(project.image.url, height: '100') : content_tag(:span, 'No Photo Yet')
end
end
end
# form html: { enctype: 'multipart/form-data' } do |f|
# f.input do
# f.input :name
# f.input :content
# f.input :price
# f.input :image, hint: f.project.image? ? image_tag(project.image.url, height: '100') : content_tag(:span, 'Upload JPG/PNG/GIF Image')
# end
# f.actions
# end
end
Ich weiß, dass es einen Weg gibt, alle diese Eingänge zu nehmen ist, und haben sie als Teil automatische einer Upload-Schaltfläche, aber ich habe eine harte Zeit mit dem Code; Ich erhalte den Fehler unten, wenn ich den anderen Teil meines admin/project.rb
Codes auskommentiere.
Ich bin mit ActiveAdmin, Paperclip 5.1 und Rails 5.1.1
Started GET "/admin/projects/2/edit" for 127.0.0.1 at 2017-06-26 13:14:33 -0700
Processing by Admin::ProjectsController#edit as HTML
Parameters: {"id"=>"2"}
AdminUser Load (0.1ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = ? ORDER BY "admin_users"."id" ASC LIMIT ? [["id", 2], ["LIMIT", 1]]
Project Load (0.1ms) SELECT "projects".* FROM "projects" WHERE "projects"."id" = ? LIMIT ? [["id", 2], ["LIMIT", 1]]
Rendering /Users/rooster/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activeadmin-1.0.0/app/views/active_admin/resource/edit.html.arb
CACHE Project Load (0.0ms) SELECT "projects".* FROM "projects" WHERE "projects"."id" = ? LIMIT ? [["id", 2], ["LIMIT", 1]]
Rendered /Users/rooster/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activeadmin-1.0.0/app/views/active_admin/resource/edit.html.arb (129.0ms)
Completed 500 Internal Server Error in 163ms (ActiveRecord: 1.4ms)
ActionView::Template::Error (wrong number of arguments (given 0, expected 1..2)):
1: insert_tag renderer_for(:edit)
Gibt es weitere Fehler im Protokoll vor dem 'ActionView :: Template :: Error'? – jdgray
@jdgray Ich fügte hinzu, was in der Konsole zu der Frage angezeigt wurde. –