An ActionView::Template::Error occurred in activity_logs#index:
undefined method `serial_number' for nil
app/decorators/activity_log_decorator.rb:48:in `serial_number_link'
-------------------------------
Request:
-------------------------------
* URL : https://www.bikelink.org/activity_logs?activity_logs_datagrid%5Bdescription%5D=&activity_logs_datagrid%5Bdevice_id%5D=&activity_logs_datagrid%5Bg7_access_hub_board_sn%5D=&activity_logs_datagrid%5Bper_page%5D=500&activity_logs_datagrid%5Bserial_number%5D=&activity_logs_datagrid%5Btimestamp%5D%5B%5D=&activity_logs_datagrid%5Btimestamp%5D%5B%5D=&commit=Apply&page=2
* HTTP Method: GET
* IP address : 94.143.232.198
* Parameters : {"activity_logs_datagrid"=>{"description"=>"", "device_id"=>"", "g7_access_hub_board_sn"=>"", "per_page"=>"500", "serial_number"=>"", "timestamp"=>["", ""]}, "commit"=>"Apply", "page"=>"2", "controller"=>"activity_logs", "action"=>"index"}
* Timestamp : 2025-03-24 17:14:19 UTC
* Server : www-10.internal.bikelink.org
* Rails root : /var/www/bikelink
* Process: 476574
-------------------------------
Session:
-------------------------------
* session id: [FILTERED]
* data: {"session_id"=>"0ae53c96eed031f4b22a3b49861f245d",
"warden.user.person.key"=>[[51280], "ukumXhQgJMZDFyJ6Fesv"],
"_csrf_token"=>"sGghL9mlqBI9bMv_SCP3dlQYLHe5IZVOEpeu24NRw7s",
"params_for_filter"=>
{"filter_by_location"=>nil,
"filter_by_owner"=>nil,
"filter_by_state"=>2,
"filter_by_priority"=>nil}}
-------------------------------
Environment:
-------------------------------
* GATEWAY_INTERFACE : CGI/1.2
* HTTP_ACCEPT : text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
* HTTP_ACCEPT_ENCODING : gzip, deflate, br, zstd
* HTTP_ACCEPT_LANGUAGE : en,cs-CZ;q=0.9,cs;q=0.8
* HTTP_CONNECTION : close
* HTTP_COOKIE : _ga=GA1.1.201172277.1742808400; _bikelink_session=w316kr1xIPwBeIe3a56ubo%2FpUxFZq0GDNWbtG%2B%2Fu9NSQgdK8%2FCtBFCbbudnT%2FUnZgEEoOgE5R3jEEfbPtvYcyvZenv7E0J6912W9pfmzw2ciu424pkNp9gIqPhKhtG%2BrwIsgFEA4Qr6%2BckCfmAIMBjTQSSfEmsasKya8nmKWFyLThzW7aZE1FoX3Cc73dDoquBPYL2UvO7VD%2FeNT4xOW8JxWHhYd0fmd1taposR5Cd7nemciIgto9XRSSnlE0xxUUACDh01VXq%2F6s4skwCMam3A4S1MNh0USIjaW%2BfqNQM%2FMvULaPhMBldNjQxn4yyXG8aaTEwxn2U90cj26TV3lwXQ4W5YRBTPVRBXB12SlgODXjol3a7sgt%2FlUViWU24KT4nO71qg2aKEXrsJS5UweLPul%2FqarzwKfI3n9EiT6ShflASdmJeRp6MFbRmV2EYTxgAZilbq6%2FCqtsHfHhY5zfdBkGC6RnBccv32vXxIe0tC7RTBlL7xFgH7IKhTTy2FEal2YZQ7vJHY%2BZivZoPi4zFzq80SFxY6%2F2zuC6NP7Q7HQr%2FEqU6gqpGCAF81mcsXN5mOg7DRV6Z1jEUJJcrBYH10%3D--l%2BkhOeSR8wsrVd5f--4lmh5QYov8l0QnB90x5VLg%3D%3D; _ga_5XJXN3VELE=GS1.1.1742836315.7.1.1742836410.0.0.0
* HTTP_HOST : www.bikelink.org
* HTTP_PRIORITY : u=0, i
* HTTP_SEC_CH_UA : "Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"
* HTTP_SEC_CH_UA_MOBILE : ?0
* HTTP_SEC_CH_UA_PLATFORM : "macOS"
* HTTP_SEC_FETCH_DEST : document
* HTTP_SEC_FETCH_MODE : navigate
* HTTP_SEC_FETCH_SITE : none
* HTTP_SEC_FETCH_USER : ?1
* HTTP_UPGRADE_INSECURE_REQUESTS : 1
* HTTP_USER_AGENT : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
* HTTP_VERSION : HTTP/1.0
* HTTP_X_AMZN_TRACE_ID : Root=1-67e192ea-7f2e285a53f7d67300ff6736
* HTTP_X_FORWARDED_FOR : 94.143.232.198, 94.143.232.198
* HTTP_X_FORWARDED_PORT : 443
* HTTP_X_FORWARDED_PROTO : https
* ORIGINAL_FULLPATH : /activity_logs?activity_logs_datagrid%5Bdescription%5D=&activity_logs_datagrid%5Bdevice_id%5D=&activity_logs_datagrid%5Bg7_access_hub_board_sn%5D=&activity_logs_datagrid%5Bper_page%5D=500&activity_logs_datagrid%5Bserial_number%5D=&activity_logs_datagrid%5Btimestamp%5D%5B%5D=&activity_logs_datagrid%5Btimestamp%5D%5B%5D=&commit=Apply&page=2
* ORIGINAL_SCRIPT_NAME :
* PATH_INFO : /activity_logs
* QUERY_STRING : activity_logs_datagrid%5Bdescription%5D=&activity_logs_datagrid%5Bdevice_id%5D=&activity_logs_datagrid%5Bg7_access_hub_board_sn%5D=&activity_logs_datagrid%5Bper_page%5D=500&activity_logs_datagrid%5Bserial_number%5D=&activity_logs_datagrid%5Btimestamp%5D%5B%5D=&activity_logs_datagrid%5Btimestamp%5D%5B%5D=&commit=Apply&page=2
* REMOTE_ADDR : 127.0.0.1
* REQUEST_METHOD : GET
* REQUEST_PATH : /activity_logs
* REQUEST_URI : /activity_logs?activity_logs_datagrid%5Bdescription%5D=&activity_logs_datagrid%5Bdevice_id%5D=&activity_logs_datagrid%5Bg7_access_hub_board_sn%5D=&activity_logs_datagrid%5Bper_page%5D=500&activity_logs_datagrid%5Bserial_number%5D=&activity_logs_datagrid%5Btimestamp%5D%5B%5D=&activity_logs_datagrid%5Btimestamp%5D%5B%5D=&commit=Apply&page=2
* ROUTES_13540_SCRIPT_NAME :
* SCRIPT_NAME :
* SERVER_NAME : www.bikelink.org
* SERVER_PORT : 443
* SERVER_PROTOCOL : HTTP/1.0
* SERVER_SOFTWARE : puma 6.6.0 Return to Forever
* action_controller.instance : #<ActivityLogsController:0x000072541e7a51e0>
* action_dispatch.authenticated_encrypted_cookie_salt : [FILTERED]
* action_dispatch.backtrace_cleaner : #<Rails::BacktraceCleaner:0x0000725440a985b0>
* action_dispatch.content_security_policy :
* action_dispatch.content_security_policy_nonce_directives:
* action_dispatch.content_security_policy_nonce_generator :
* action_dispatch.content_security_policy_report_only : false
* action_dispatch.cookies : #<ActionDispatch::Cookies::CookieJar:0x0000725431071640>
* action_dispatch.cookies_digest :
* action_dispatch.cookies_rotations : #<ActiveSupport::Messages::RotationConfiguration:0x0000725442d049f0>
* action_dispatch.cookies_same_site_protection : #<Proc:0x0000725431bc5de8 /var/www/bikelink/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/application.rb:641>
* action_dispatch.cookies_serializer : json
* action_dispatch.debug_exception_log_level : 3
* action_dispatch.encrypted_cookie_cipher : [FILTERED]
* action_dispatch.encrypted_cookie_salt : [FILTERED]
* action_dispatch.encrypted_signed_cookie_salt : [FILTERED]
* action_dispatch.http_auth_salt : [FILTERED]
* action_dispatch.key_generator : #<ActiveSupport::CachingKeyGenerator:0x0000725431364af0>
* action_dispatch.log_rescued_responses : true
* action_dispatch.logger : #<ActiveSupport::BroadcastLogger:0x0000725441a03fb8>
* action_dispatch.parameter_filter : [/(?i:confirm_password)|(?i:credit_card_number)|(?i:password)|(?i:passw)|(?i:secret)|(?i:token)|(?i:_key)|(?i:crypt)|(?i:salt)|(?i:certificate)|(?i:otp)|(?i:ssn)/, /(?i:person\.otp_secret)|(?i:encrypted_rich_text\.body)/]
* action_dispatch.permissions_policy :
* action_dispatch.redirect_filter : []
* action_dispatch.remote_ip : 94.143.232.198
* action_dispatch.request.content_type :
* action_dispatch.request.formats : [#<Mime::Type:0x0000725442bddcc0 @synonyms=["application/xhtml+xml"], @symbol=:html, @string="text/html", @hash=900905860341831897>]
* action_dispatch.request.parameters : {"activity_logs_datagrid"=>{"description"=>"", "device_id"=>"", "g7_access_hub_board_sn"=>"", "per_page"=>"500", "serial_number"=>"", "timestamp"=>["", ""]}, "commit"=>"Apply", "page"=>"2", "controller"=>"activity_logs", "action"=>"index"}
* action_dispatch.request.path_parameters : {:controller=>"activity_logs", :action=>"index"}
* action_dispatch.request.query_parameters : {"activity_logs_datagrid"=>{"description"=>"", "device_id"=>"", "g7_access_hub_board_sn"=>"", "per_page"=>"500", "serial_number"=>"", "timestamp"=>["", ""]}, "commit"=>"Apply", "page"=>"2"}
* action_dispatch.request.request_parameters : {}
* action_dispatch.request.unsigned_session_cookie : {"session_id"=>"0ae53c96eed031f4b22a3b49861f245d", "warden.user.person.key"=>[[51280], "ukumXhQgJMZDFyJ6Fesv"], "_csrf_token"=>"[FILTERED]", "params_for_filter"=>{"filter_by_location"=>nil, "filter_by_owner"=>nil, "filter_by_state"=>2, "filter_by_priority"=>nil}}
* action_dispatch.request_id : 7350367b-2c31-4290-82bd-d44f439cfe7e
* action_dispatch.route_uri_pattern : /activity_logs(.:format)
* action_dispatch.routes : #<ActionDispatch::Routing::RouteSet:0x00007254427b87a8>
* action_dispatch.secret_key_base : [FILTERED]
* action_dispatch.show_detailed_exceptions : false
* action_dispatch.show_exceptions : all
* action_dispatch.signed_cookie_digest :
* action_dispatch.signed_cookie_salt : [FILTERED]
* action_dispatch.use_authenticated_cookie_encryption : [FILTERED]
* action_dispatch.use_cookies_with_metadata : true
* newrelic.transaction_started : true
* puma.config : #<Puma::Configuration:0x000072544359f4c0>
* puma.request_body_wait : 0.005660057067871094
* puma.socket : #<UNIXSocket:0x0000725440374cc0>
* rack.after_reply : []
* rack.errors : #<IO:0x000072545f459090>
* rack.hijack : #<Puma::Client:0x000072542a7b8c20>
* rack.hijack? : true
* rack.input : #<Puma::NullIO:0x0000725443918db8>
* rack.multiprocess : true
* rack.multithread : true
* rack.request.cookie_hash : {"_ga"=>"GA1.1.201172277.1742808400", "_bikelink_session"=>"w316kr1xIPwBeIe3a56ubo/pUxFZq0GDNWbtG+/u9NSQgdK8/CtBFCbbudnT/UnZgEEoOgE5R3jEEfbPtvYcyvZenv7E0J6912W9pfmzw2ciu424pkNp9gIqPhKhtG+rwIsgFEA4Qr6+ckCfmAIMBjTQSSfEmsasKya8nmKWFyLThzW7aZE1FoX3Cc73dDoquBPYL2UvO7VD/eNT4xOW8JxWHhYd0fmd1taposR5Cd7nemci...
* rack.request.cookie_string : _ga=GA1.1.201172277.1742808400; _bikelink_session=w316kr1xIPwBeIe3a56ubo%2FpUxFZq0GDNWbtG%2B%2Fu9NSQgdK8%2FCtBFCbbudnT%2FUnZgEEoOgE5R3jEEfbPtvYcyvZenv7E0J6912W9pfmzw2ciu424pkNp9gIqPhKhtG%2BrwIsgFEA4Qr6%2BckCfmAIMBjTQSSfEmsasKya8nmKWFyLThzW7aZE1FoX3Cc73dDoquBPYL2UvO7VD%2FeNT4xOW8JxWHhYd0fmd1taposR5Cd7nemciIgto9XRSSnlE0xxUUACDh01VXq%2F6s4skwCMam3A4S1MNh0USIjaW%2BfqNQM%2FMvULaPhMBldNjQxn4yyXG8aaTEwxn2U90cj26TV3lwXQ4W5YRBTPVRBXB12SlgODXjol3a7sgt%2FlUViWU24KT4nO71qg2aKEXrsJS5UweLPul%2FqarzwKfI3n9EiT6ShflASdmJeRp6MFbRmV2EYTxgAZilbq6%2FCqtsHfHhY5zfdBkGC6RnBccv32vXxIe0tC7RTBlL7xFgH7IKhTTy2FEal2YZQ7vJHY%2BZivZoPi4zFzq80SFxY6%2F2zuC6NP7Q7HQr%2FEqU6gqpGCAF81mcsXN5mOg7DRV6Z1jEUJJcrBYH10%3D--l%2BkhOeSR8wsrVd5f--4lmh5QYov8l0QnB90x5VLg%3D%3D; _ga_5XJXN3VELE=GS1.1.1742836315.7.1.1742836410.0.0.0
* rack.request.form_hash : {}
* rack.request.form_input : #<Puma::NullIO:0x0000725443918db8>
* rack.request.query_hash : {"activity_logs_datagrid"=>{"description"=>"", "device_id"=>"", "g7_access_hub_board_sn"=>"", "per_page"=>"500", "serial_number"=>"", "timestamp"=>["", ""]}, "commit"=>"Apply", "page"=>"2"}
* rack.request.query_string : activity_logs_datagrid%5Bdescription%5D=&activity_logs_datagrid%5Bdevice_id%5D=&activity_logs_datagrid%5Bg7_access_hub_board_sn%5D=&activity_logs_datagrid%5Bper_page%5D=500&activity_logs_datagrid%5Bserial_number%5D=&activity_logs_datagrid%5Btimestamp%5D%5B%5D=&activity_logs_datagrid%5Btimestamp%5D%5B%5D=&commit=Apply&page=2
* rack.run_once : false
* rack.session : #<ActionDispatch::Request::Session:0x00007254310793e0>
* rack.session.options : #<ActionDispatch::Request::Session::Options:0x00007254403afbb8>
* rack.tempfiles : []
* rack.url_scheme : https
* rack.version : [1, 6]
* rails.rack_logger_tag_count : 1
* warden : Warden::Proxy:7004920 @config={:default_scope=>:person, :scope_defaults=>{}, :default_strategies=>{:person=>[:two_factor_authenticatable, :two_factor_authenticatable, :rememberable]}, :intercept_401=>false, :failure_app=>#<Devise::Delegator:0x0000725433a27340>}
-------------------------------
Backtrace:
-------------------------------
app/decorators/activity_log_decorator.rb:48:in `serial_number_link'
app/views/datagrid/_row.html.slim:9
app/views/datagrid/_row.html.slim:2:in `each'
app/views/datagrid/_row.html.slim:2
app/views/datagrid/_table.html.slim:11
app/views/datagrid/_table.html.slim:7
app/views/datagrid/_datagrid.slim:6
app/views/datagrid/_datagrid.slim:1
app/views/activity_logs/index.html.slim:3
app/controllers/application_controller.rb:45:in `process_action'