Class: GraphStarter::AssetsController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- ApplicationController
- GraphStarter::AssetsController
- Defined in:
- app/controllers/graph_starter/assets_controller.rb
Instance Method Summary collapse
- #asset ⇒ Object
- #asset_set(var = :asset) ⇒ Object
- #edit ⇒ Object
- #home ⇒ Object
- #index ⇒ Object
- #model_class_scope(var = :asset) ⇒ Object
- #rate ⇒ Object
- #search ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
Instance Method Details
#asset ⇒ Object
86 87 88 |
# File 'app/controllers/graph_starter/assets_controller.rb', line 86 def asset model_class_scope.find(params[:id]) end |
#asset_set(var = :asset) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'app/controllers/graph_starter/assets_controller.rb', line 34 def asset_set(var = :asset) associations = [] associations << model_class.image_association associations << model_class.category_association associations.compact scope = model_class_scope(var) scope = yield scope if block_given? scope = scope.limit(50) if associations.present? scope.query_as(var).with(var).proxy_as(model_class, var).with_associations(*associations) else scope end end |
#edit ⇒ Object
58 59 60 61 62 |
# File 'app/controllers/graph_starter/assets_controller.rb', line 58 def edit @asset = asset render file: 'public/404.html', status: :not_found, layout: false if !@asset end |
#home ⇒ Object
3 4 |
# File 'app/controllers/graph_starter/assets_controller.rb', line 3 def home end |
#index ⇒ Object
6 7 8 |
# File 'app/controllers/graph_starter/assets_controller.rb', line 6 def index @assets = asset_set.to_a end |
#model_class_scope(var = :asset) ⇒ Object
90 91 92 93 94 95 96 97 98 |
# File 'app/controllers/graph_starter/assets_controller.rb', line 90 def model_class_scope(var = :asset) #@model_class_scope = if defined?(current_user) # model_class.authorized_for(current_user) #else # model_class.all(var) #end @model_class_scope ||= model_class.all(var) end |
#rate ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'app/controllers/graph_starter/assets_controller.rb', line 71 def rate if current_user = asset.(current_user) ||= Rating.create(from_node: current_user, to_node: asset) = params[:new_rating].to_i = nil if .zero? .update_attribute(:level, ) render json: else render json: {} end end |
#search ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/controllers/graph_starter/assets_controller.rb', line 10 def search assets = asset_set { |scope| scope.for_query(params[:query]) } results_data = assets.map do |asset| description = model_class.search_properties.map do |property| "<b>#{property.to_s.humanize}:</b> #{asset.read_attribute(property)}" end.join("<br>") { title: asset.title, url: asset_path(id: asset, model_slug: asset.class.model_slug), description: description, image: asset.first_image_source_url }.reject {|_, v| v.nil? }.tap do |result| model_class.search_properties.each do |property| result[property] = asset.read_attribute(property) end end end # INCLUDE SEARCH QUERY PROPERTIES IN RESULT!!! render json: {results: results_data}.to_json end |
#show ⇒ Object
52 53 54 55 56 |
# File 'app/controllers/graph_starter/assets_controller.rb', line 52 def show @asset = asset render file: 'public/404.html', status: :not_found, layout: false if !@asset end |
#update ⇒ Object
64 65 66 67 68 69 |
# File 'app/controllers/graph_starter/assets_controller.rb', line 64 def update @asset = asset @asset.update(params[:book]) redirect_to action: :edit end |