leikind / wice_grid

A Rails grid plugin to create grids with sorting, pagination, and (automatically generated) filters
MIT License
537 stars 215 forks source link

ArgumentError in View #204

Closed l3iodeez closed 8 years ago

l3iodeez commented 9 years ago

I am having trouble with a wice_grid following upgrade to Rails 4.2 from 4.1.8.

When I load the view for the grid I get the following error message: wrong number of arguments (1 for 2) for the very first line where grid() is called with the arguments "@materials_grid", and "show_filters:always".

_materials_grid.html.erb:

<%= grid(@materials_grid, show_filters: :always) do |g|
  g.column name: 'Building', attribute: 'buildingname', model: 'Building', custom_filter:     @ownedbuildings, auto_reload: false  do |material|
    material.building.buildingname if material.building
  end 

< additional columns are here>

end -%>
l3iodeez commented 9 years ago

I found workaround. I noticed that this only happens with one of my user roles. Admin users were able to load the grid. The grid definition for normal users was:

  @cust_mats = current_user.customer.materials

  @materials_grid = initialize_grid(@cust_mats,
  :include => [:space, :customer, :building],
  :conditions => {:customer => @customer},
  :name => 'materials',
  :per_page => 20,
  :enable_export_to_csv => true,
  :csv_file_name => 'Survey Data',
  :custom_order => {'materials.amtdamage' => 'COALESCE(?, 0)'}
  )

And for admins:

   @materials_grid = initialize_grid(Material,
  :include => [:space, :customer, :building],
  :per_page => 20,
  :name => 'materials',
  :enable_export_to_csv => true,
  :csv_file_name => 'Survey Data',
  :custom_order => {'materials.amtdamage' => 'COALESCE(?, 0)'}
  )

I noticed that because I define @cust_mats and use that for the grid, the :conditions parameter was redundant. when I removed it, the grid was able to load.

leikind commented 9 years ago

when posting reports like this a stacktrace is a must

l3iodeez commented 9 years ago

I already resolved the problem, just posting in case this is not an intended behavior. It seems like the redundant condition should have no effect, but maybe Im doing something wrong?

Full Trace:

arel (6.0.0) lib/arel/visitors/reduce.rb:6:in `accept'
wice_grid (3.4.14) lib/wice/wice_grid_misc.rb:64:in `block in _sanitize_sql_hash_for_conditions'
wice_grid (3.4.14) lib/wice/wice_grid_misc.rb:63:in `map'
wice_grid (3.4.14) lib/wice/wice_grid_misc.rb:63:in `_sanitize_sql_hash_for_conditions'
wice_grid (3.4.14) lib/wice/wice_grid_misc.rb:74:in `block in merge_conditions'
wice_grid (3.4.14) lib/wice/wice_grid_misc.rb:72:in `each'
wice_grid (3.4.14) lib/wice/wice_grid_misc.rb:72:in `merge_conditions'
wice_grid (3.4.14) lib/wice_grid.rb:271:in `form_ar_options'
wice_grid (3.4.14) lib/wice_grid.rb:304:in `read'
wice_grid (3.4.14) lib/wice_grid.rb:350:in `resultset'
wice_grid (3.4.14) lib/wice/helpers/wice_grid_view_helpers.rb:661:in `pagination_info'
wice_grid (3.4.14) lib/wice/helpers/wice_grid_view_helpers.rb:617:in `pagination_panel_content'
wice_grid (3.4.14) lib/wice/helpers/wice_grid_view_helpers.rb:398:in `block in grid_html'
wice_grid (3.4.14) lib/wice/grid_renderer.rb:101:in `pagination_panel'
wice_grid (3.4.14) lib/wice/helpers/wice_grid_view_helpers.rb:393:in `grid_html'
wice_grid (3.4.14) lib/wice/helpers/wice_grid_view_helpers.rb:126:in `define_grid'
wice_grid (3.4.14) lib/wice/helpers/wice_grid_view_helpers.rb:76:in `grid'
app/views/ahera/_materials_grid.html.erb:1:in `_app_views_ahera__materials_grid_html_erb__934126704_98122150'
actionview (4.2.0) lib/action_view/template.rb:145:in `block in render'
activesupport (4.2.0) lib/active_support/notifications.rb:166:in `instrument'
actionview (4.2.0) lib/action_view/template.rb:333:in `instrument'
actionview (4.2.0) lib/action_view/template.rb:143:in `render'
actionview (4.2.0) lib/action_view/renderer/partial_renderer.rb:339:in `render_partial'
actionview (4.2.0) lib/action_view/renderer/partial_renderer.rb:310:in `block in render'
actionview (4.2.0) lib/action_view/renderer/abstract_renderer.rb:39:in `block in instrument'
activesupport (4.2.0) lib/active_support/notifications.rb:164:in `block in instrument'
activesupport (4.2.0) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.2.0) lib/active_support/notifications.rb:164:in `instrument'
actionview (4.2.0) lib/action_view/renderer/abstract_renderer.rb:39:in `instrument'
actionview (4.2.0) lib/action_view/renderer/partial_renderer.rb:309:in `render'
actionview (4.2.0) lib/action_view/renderer/renderer.rb:47:in `render_partial'
actionview (4.2.0) lib/action_view/renderer/renderer.rb:21:in `render'
actionview (4.2.0) lib/action_view/helpers/rendering_helper.rb:32:in `render'
app/views/ahera/index.erb:20:in `_app_views_ahera_index_erb__344192487_98553900'
actionview (4.2.0) lib/action_view/template.rb:145:in `block in render'
activesupport (4.2.0) lib/active_support/notifications.rb:166:in `instrument'
actionview (4.2.0) lib/action_view/template.rb:333:in `instrument'
actionview (4.2.0) lib/action_view/template.rb:143:in `render'
actionview (4.2.0) lib/action_view/renderer/template_renderer.rb:54:in `block (2 levels) in render_template'
actionview (4.2.0) lib/action_view/renderer/abstract_renderer.rb:39:in `block in instrument'
activesupport (4.2.0) lib/active_support/notifications.rb:164:in `block in instrument'
activesupport (4.2.0) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.2.0) lib/active_support/notifications.rb:164:in `instrument'
actionview (4.2.0) lib/action_view/renderer/abstract_renderer.rb:39:in `instrument'
actionview (4.2.0) lib/action_view/renderer/template_renderer.rb:53:in `block in render_template'
actionview (4.2.0) lib/action_view/renderer/template_renderer.rb:61:in `render_with_layout'
actionview (4.2.0) lib/action_view/renderer/template_renderer.rb:52:in `render_template'
actionview (4.2.0) lib/action_view/renderer/template_renderer.rb:14:in `render'
actionview (4.2.0) lib/action_view/renderer/renderer.rb:42:in `render_template'
actionview (4.2.0) lib/action_view/renderer/renderer.rb:23:in `render'
actionview (4.2.0) lib/action_view/rendering.rb:100:in `_render_template'
actionpack (4.2.0) lib/action_controller/metal/streaming.rb:217:in `_render_template'
actionview (4.2.0) lib/action_view/rendering.rb:83:in `render_to_body'
actionpack (4.2.0) lib/action_controller/metal/rendering.rb:32:in `render_to_body'
actionpack (4.2.0) lib/action_controller/metal/renderers.rb:37:in `render_to_body'
actionpack (4.2.0) lib/abstract_controller/rendering.rb:25:in `render'
actionpack (4.2.0) lib/action_controller/metal/rendering.rb:16:in `render'
actionpack (4.2.0) lib/action_controller/metal/instrumentation.rb:41:in `block (2 levels) in render'
activesupport (4.2.0) lib/active_support/core_ext/benchmark.rb:12:in `block in ms'
/home/hdotson/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/benchmark.rb:303:in `realtime'
activesupport (4.2.0) lib/active_support/core_ext/benchmark.rb:12:in `ms'
actionpack (4.2.0) lib/action_controller/metal/instrumentation.rb:41:in `block in render'
actionpack (4.2.0) lib/action_controller/metal/instrumentation.rb:84:in `cleanup_view_runtime'
activerecord (4.2.0) lib/active_record/railties/controller_runtime.rb:25:in `cleanup_view_runtime'
actionpack (4.2.0) lib/action_controller/metal/instrumentation.rb:40:in `render'
actionpack (4.2.0) lib/action_controller/metal/implicit_render.rb:10:in `default_render'
actionpack (4.2.0) lib/action_controller/metal/implicit_render.rb:5:in `send_action'
actionpack (4.2.0) lib/abstract_controller/base.rb:198:in `process_action'
actionpack (4.2.0) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.2.0) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (4.2.0) lib/active_support/callbacks.rb:117:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:117:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `block in halting'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `block in halting'
activesupport (4.2.0) lib/active_support/callbacks.rb:234:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:234:in `block in halting'
activesupport (4.2.0) lib/active_support/callbacks.rb:234:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:234:in `block in halting'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `block in halting'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `block in halting'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `block in halting'
activesupport (4.2.0) lib/active_support/callbacks.rb:92:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:92:in `_run_callbacks'
activesupport (4.2.0) lib/active_support/callbacks.rb:734:in `_run_process_action_callbacks'
activesupport (4.2.0) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.0) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (4.2.0) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.2.0) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
activesupport (4.2.0) lib/active_support/notifications.rb:164:in `block in instrument'
activesupport (4.2.0) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.2.0) lib/active_support/notifications.rb:164:in `instrument'
actionpack (4.2.0) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.2.0) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.2.0) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.2.0) lib/abstract_controller/base.rb:137:in `process'
actionview (4.2.0) lib/action_view/rendering.rb:30:in `process'
actionpack (4.2.0) lib/action_controller/metal.rb:195:in `dispatch'
actionpack (4.2.0) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.2.0) lib/action_controller/metal.rb:236:in `block in action'
actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:73:in `call'
actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:73:in `dispatch'
actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:42:in `serve'
actionpack (4.2.0) lib/action_dispatch/journey/router.rb:43:in `block in serve'
actionpack (4.2.0) lib/action_dispatch/journey/router.rb:30:in `each'
actionpack (4.2.0) lib/action_dispatch/journey/router.rb:30:in `serve'
actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:802:in `call'
warden (1.2.3) lib/warden/manager.rb:35:in `block in call'
warden (1.2.3) lib/warden/manager.rb:34:in `catch'
warden (1.2.3) lib/warden/manager.rb:34:in `call'
rack (1.6.0) lib/rack/etag.rb:24:in `call'
rack (1.6.0) lib/rack/conditionalget.rb:25:in `call'
rack (1.6.0) lib/rack/head.rb:13:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/flash.rb:260:in `call'
rack (1.6.0) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.6.0) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/cookies.rb:560:in `call'
activerecord (4.2.0) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.2.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:647:in `call'
activerecord (4.2.0) lib/active_record/migration.rb:378:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.2.0) lib/active_support/callbacks.rb:88:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:88:in `_run_callbacks'
activesupport (4.2.0) lib/active_support/callbacks.rb:734:in `_run_call_callbacks'
activesupport (4.2.0) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/reloader.rb:73:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.2.0) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.2.0) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.2.0) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.2.0) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.6.0) lib/rack/methodoverride.rb:22:in `call'
rack (1.6.0) lib/rack/runtime.rb:18:in `call'
activesupport (4.2.0) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
rack (1.6.0) lib/rack/lock.rb:17:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/static.rb:113:in `call'
rack (1.6.0) lib/rack/sendfile.rb:113:in `call'
railties (4.2.0) lib/rails/engine.rb:518:in `call'
railties (4.2.0) lib/rails/application.rb:164:in `call'
puma (2.11.1) lib/puma/rack_patch.rb:13:in `call'
puma (2.11.1) lib/puma/configuration.rb:82:in `call'
puma (2.11.1) lib/puma/server.rb:507:in `handle_request'
puma (2.11.1) lib/puma/server.rb:375:in `process_client'
puma (2.11.1) lib/puma/server.rb:262:in `block in run'
puma (2.11.1) lib/puma/thread_pool.rb:104:in `call'
puma (2.11.1) lib/puma/thread_pool.rb:104:in `block in spawn_thread'

development.log

Started GET "/ahera" for 192.168.1.98 at 2015-04-01 11:30:25 -0400
Processing by AheraController#index as HTML
User Load (0.5ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1  ORDER BY "users"."id" ASC LIMIT 1  [["id", 23]]
Customer Load (0.5ms)  SELECT  "customers".* FROM "customers" WHERE "customers"."id" = $1 LIMIT 1  [["id", 1]]
Building Load (0.5ms)  SELECT "buildings".* FROM "buildings" WHERE "buildings"."customer_id" = $1  [["customer_id", 1]]
Rendered ahera/_materials_grid.html.erb (13.3ms)
Rendered ahera/index.erb within layouts/application (14.9ms)
Completed 500 Internal Server Error in 99ms

ActionView::Template::Error (wrong number of arguments (1 for 2)):
    1: <%= grid(@materials_grid, show_filters: :always) do |g|
    2: 
    3: 
    4:   g.column name: 'Building', attribute: 'buildingname', model: 'Building', custom_filter: @ownedbuildings, auto_reload: false  do |material|
  app/views/ahera/_materials_grid.html.erb:1:in `_app_views_ahera__materials_grid_html_erb__934126704_98122150'
  app/views/ahera/index.erb:20:in `_app_views_ahera_index_erb__344192487_98553900'

  Rendered /home/myusername/.rvm/gems/ruby-2.2.0@rails4.2/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/_source.erb (12.5ms)
  Rendered /home/myusername/.rvm/gems/ruby-2.2.0@rails4.2/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (5.4ms)
  Rendered /home/myusername/.rvm/gems/ruby-2.2.0@rails4.2/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (2.0ms)
  Rendered /home/myusername/.rvm/gems/ruby-2.2.0@rails4.2/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb within rescues/layout (41.8ms)
l3iodeez commented 9 years ago

I am still having this issue with any grids that use the :conditions option to filter initial contents of the grid. I tried making the simplest possible grid and it throws this error any time you use the :conditions option regardless of any other options.

leikind commented 9 years ago

https://github.com/leikind/wice_grid/wiki/How-to-submit-a-bug-report-or-a-question

tboyko commented 8 years ago

+1. Including :conditions option results in a rendering error as stated above with Rails 4.2.1 and wice_grid 3.5.0

leikind commented 8 years ago

this is fixed in the development branch https://github.com/leikind/wice_grid/tree/development

You might try it out, but please be aware that the API has changed in the development branch: https://github.com/leikind/wice_grid/blob/development/CHANGELOG.md

leikind commented 8 years ago

fixed in 3.6.0.pre4