Created
May 19, 2016 00:51
-
-
Save esparkman/6feee0a4d3f7a4f4ee7429765abf91fd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Admin | |
class VehiclesController < Admin::ApplicationController | |
# To customize the behavior of this controller, | |
# simply overwrite any of the RESTful actions. For example: | |
# | |
# def index | |
# super | |
# @resources = Vehicle.all.paginate(10, params[:page]) | |
# end | |
# Define a custom finder by overriding the `find_resource` method: | |
# def find_resource(param) | |
# Vehicle.find_by!(slug: param) | |
# end | |
# See https://administrate-docs.herokuapp.com/customizing_controller_actions | |
# for more information | |
expose(:vehicle, attributes: :vehicle_params) | |
expose(:vehicles) { Vehicle.order(:make).page params[:page] } | |
private | |
# Use strong_parameters for attribute whitelisting | |
# Be sure to update your create() and update() controller methods. | |
def vehicle_params | |
params.require(:vehicle).permit(:vehicle_photo) | |
end | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Started PATCH "/admin/vehicles/1" for ::1 at 2016-05-18 15:39:35 -0400 | |
Processing by Admin::VehiclesController#update as HTML | |
Parameters: {"utf8"=>"✓", "authenticity_token"=>"wWCyW6/HhoYOxYEMjMr0XsOvYLtda2HERxIXbTbf9HbF4MDRBwFzI6NV5GwXMbLpS1XOoLYdHZtJthjzi4THrQ==", "vehicle"=>{"make"=>"Dodge", "model"=>"RAM 1500", "trim"=>"", "year"=>"", "price"=>"27500", "vin"=>"", "doors"=>"", "color"=>"", "int_color"=>"", "ext_color"=>"", "description"=>"", "sold"=>"0", "used"=>"0", "new"=>"0", "warranty"=>"0", "warranty_type"=>"", "featured"=>"1", "vehicle_photo"=>[#<ActionDispatch::Http::UploadedFile:0x007fcc0a31b2e8 @tempfile=#<Tempfile:/var/folders/gp/m0w644rs1f3gmrz11r5ymx3m0000gn/T/RackMultipart20160518-41740-zstbj.jpg>, @original_filename="IMG_0263.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"vehicle[vehicle_photo][]\"; filename=\"IMG_0263.jpg\"\r\nContent-Type: image/jpeg\r\n">]}, "commit"=>"Update Vehicle", "id"=>"1"} | |
Vehicle Load (0.4ms) SELECT "vehicles".* FROM "vehicles" WHERE "vehicles"."id" = $1 LIMIT 1 [["id", 1]] | |
Unpermitted parameter: vehicle_photo | |
(0.2ms) BEGIN | |
(0.2ms) ROLLBACK | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/string/_form.html.erb (0.8ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/string/_form.html.erb (0.5ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/string/_form.html.erb (0.4ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/string/_form.html.erb (0.4ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/number/_form.html.erb (0.6ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/string/_form.html.erb (0.4ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/string/_form.html.erb (0.4ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/string/_form.html.erb (0.5ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/string/_form.html.erb (0.9ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/string/_form.html.erb (0.9ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/text/_form.html.erb (0.5ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/boolean/_form.html.erb (0.7ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/boolean/_form.html.erb (0.5ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/boolean/_form.html.erb (0.6ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/boolean/_form.html.erb (0.4ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/string/_form.html.erb (0.6ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/fields/boolean/_form.html.erb (0.3ms) | |
Rendered fields/photo_field/_form.html.erb (0.4ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/administrate/application/_form.html.erb (83.7ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/administrate/application/edit.html.erb within layouts/administrate/application (105.3ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/administrate/application/_sidebar.html.erb (1.7ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/administrate/application/_flashes.html.erb (0.1ms) | |
Rendered /Users/evansparkman/.rvm/gems/ruby-2.3.1@easylot/gems/administrate-0.2.0/app/views/administrate/application/_javascript.html.erb (24.4ms) | |
Completed 200 OK in 233ms (Views: 227.2ms | ActiveRecord: 0.8ms) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "administrate/field/base" | |
class PhotoField < Administrate::Field::Base | |
def to_s | |
data | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Vehicle < ActiveRecord::Base | |
has_attached_file :vehicle_photo, | |
whiny_thumbnails: true, | |
default_url: '/:class/:attachment/missing.png', | |
url: '/assets/:style_:basename.:extension', | |
path: ':rails_root/public/assets/:style_:basename.:extension', | |
styles: { | |
thumb: '100x100', | |
large: '770x500' | |
} | |
validates_attachment_content_type :vehicle_photo, | |
content_type: %r{/\Aimage\/.*\Z/} | |
validates_attachment_presence :vehicle_photo | |
validates_attachment_size :vehicle_photo, less_than: 5.megabytes | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'administrate/base_dashboard' | |
class VehicleDashboard < Administrate::BaseDashboard | |
# ATTRIBUTE_TYPES | |
# a hash that describes the type of each of the model's fields. | |
# | |
# Each different type represents an Administrate::Field object, | |
# which determines how the attribute is displayed | |
# on pages throughout the dashboard. | |
ATTRIBUTE_TYPES = { | |
id: Field::Number, | |
make: Field::String, | |
model: Field::String, | |
trim: Field::String, | |
year: Field::String, | |
price: Field::Number.with_options( | |
prefix: '$', | |
multipler: 0.01, | |
decimals: 2 | |
), | |
vin: Field::String, | |
doors: Field::String, | |
color: Field::String, | |
int_color: Field::String, | |
ext_color: Field::String, | |
description: Field::Text, | |
sold: Field::Boolean, | |
used: Field::Boolean, | |
new: Field::Boolean, | |
warranty: Field::Boolean, | |
warranty_type: Field::String, | |
created_at: Field::DateTime, | |
updated_at: Field::DateTime, | |
featured: Field::Boolean, | |
vehicle_photo: PhotoField | |
}.freeze | |
# COLLECTION_ATTRIBUTES | |
# an array of attributes that will be displayed on the model's index page. | |
# | |
# By default, it's limited to four items to reduce clutter on index pages. | |
# Feel free to add, remove, or rearrange items. | |
COLLECTION_ATTRIBUTES = [ | |
:id, | |
:make, | |
:model, | |
:trim, | |
:price | |
].freeze | |
# SHOW_PAGE_ATTRIBUTES | |
# an array of attributes that will be displayed on the model's show page. | |
SHOW_PAGE_ATTRIBUTES = [ | |
:id, | |
:make, | |
:model, | |
:trim, | |
:year, | |
:price, | |
:vin, | |
:doors, | |
:color, | |
:int_color, | |
:ext_color, | |
:description, | |
:sold, | |
:used, | |
:new, | |
:warranty, | |
:warranty_type, | |
:created_at, | |
:updated_at, | |
:featured | |
].freeze | |
# FORM_ATTRIBUTES | |
# an array of attributes that will be displayed | |
# on the model's form (`new` and `edit`) pages. | |
FORM_ATTRIBUTES = [ | |
:make, | |
:model, | |
:trim, | |
:year, | |
:price, | |
:vin, | |
:doors, | |
:color, | |
:int_color, | |
:ext_color, | |
:description, | |
:sold, | |
:used, | |
:new, | |
:warranty, | |
:warranty_type, | |
:featured, | |
:vehicle_photo | |
].freeze | |
# Overwrite this method to customize how vehicles are displayed | |
# across all pages of the admin dashboard. | |
# | |
def display_resource(vehicle) | |
"Vehicle $#{vehicle.price} - #{vehicle.make} #{vehicle.model}" | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment