undefined method `compact' #29

Closed
opened 2025-12-29 00:21:34 +01:00 by adam · 1 comment
Owner

Originally created by @abdullah353 on GitHub (Mar 3, 2016).

After Following your installation steps i am receiving this error.

bundle exec crono 
undefined method `compact' for {:hour=>15, :min=>30}:Hash
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/period.rb:68:in `time_atts'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/period.rb:32:in `initial_next'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/period.rb:14:in `next'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/job.rb:16:in `initialize'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/performer_proxy.rb:10:in `new'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/performer_proxy.rb:10:in `every'
/var/www/billgist/web_app/config/cronotab.rb:14:in `<top (required)>'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `block in require'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/cronotab.rb:7:in `process'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/cli.rb:24:in `run'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/exe/crono:8:in `<top (required)>'
/usr/local/bin/crono:23:in `load'
/usr/local/bin/crono:23:in `<main>'

cat _config/cronotab.rb_

# cronotab.rb — Crono configuration file
#
# Here you can specify periodic jobs and schedule.
# You can use ActiveJob's jobs from `app/jobs/`
# You can use any class. The only requirement is that
# class should have a method `perform` without arguments.
#
 class TestJob
   def perform
     puts 'Test!'
   end
 end
#
 Crono.perform(TestJob).every 2.days, at: '15:30'
#

Rails Version 4.0.0
Ruby Version 2.1.0p0

Originally created by @abdullah353 on GitHub (Mar 3, 2016). After Following your installation steps i am receiving this error. ``` bundle exec crono ``` ``` undefined method `compact' for {:hour=>15, :min=>30}:Hash /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/period.rb:68:in `time_atts' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/period.rb:32:in `initial_next' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/period.rb:14:in `next' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/job.rb:16:in `initialize' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/performer_proxy.rb:10:in `new' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/performer_proxy.rb:10:in `every' /var/www/billgist/web_app/config/cronotab.rb:14:in `<top (required)>' /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require' /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `block in require' /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency' /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/cronotab.rb:7:in `process' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/cli.rb:24:in `run' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/exe/crono:8:in `<top (required)>' /usr/local/bin/crono:23:in `load' /usr/local/bin/crono:23:in `<main>' ``` > cat **_config/cronotab.rb**_ > > ``` > # cronotab.rb — Crono configuration file > # > # Here you can specify periodic jobs and schedule. > # You can use ActiveJob's jobs from `app/jobs/` > # You can use any class. The only requirement is that > # class should have a method `perform` without arguments. > # > class TestJob > def perform > puts 'Test!' > end > end > # > Crono.perform(TestJob).every 2.days, at: '15:30' > # > ``` Rails Version 4.0.0 Ruby Version 2.1.0p0
adam closed this issue 2025-12-29 00:21:34 +01:00
Author
Owner

@abdullah353 commented on GitHub (Mar 4, 2016):

After upgrading _Rails to 4.1.0_ i am getting this error, It's because of gem protected_attributes that i am using. instead of strong parameter

undefined method `sanitize_forbidden_attributes' for #<Crono::CronoJob:0xbc9966fc>
/usr/local/lib/ruby/gems/2.1.0/gems/activemodel-4.1.0/lib/active_model/attribute_methods.rb:435:in `method_missing'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/attribute_methods.rb:206:in `method_missing'
/usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_model/mass_assignment_security.rb:354:in `sanitize_for_mass_assignment'
/usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_record/mass_assignment_security/attribute_assignment.rb:58:in `assign_attributes'
/usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_record/mass_assignment_security/core.rb:8:in `init_attributes'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/core.rb:198:in `initialize'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/inheritance.rb:30:in `new'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/inheritance.rb:30:in `new'
/usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_record/mass_assignment_security/persistence.rb:45:in `create'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/relation.rb:132:in `block in create'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/relation.rb:286:in `scoping'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/relation.rb:132:in `create'
/usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_record/mass_assignment_security/relation.rb:57:in `find_or_create_by'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/querying.rb:6:in `find_or_create_by'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/job.rb:102:in `model'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/job.rb:49:in `load'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/scheduler.rb:11:in `add_job'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/performer_proxy.rb:11:in `every'
/var/www/billgist/web_app/config/cronotab.rb:14:in `<top (required)>'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in `require'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in `block in require'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:232:in `load_dependency'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in `require'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/cronotab.rb:7:in `process'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/cli.rb:24:in `run'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/exe/crono:8:in `<top (required)>'
/usr/local/bin/crono:23:in `load'
/usr/local/bin/crono:23:in `<main>'

Then After Migrating to _Rails 4.2.0_ it's working now

@abdullah353 commented on GitHub (Mar 4, 2016): After upgrading **_Rails to 4.1.0**_ i am getting this error, It's because of gem protected_attributes that i am using. instead of strong parameter ``` undefined method `sanitize_forbidden_attributes' for #<Crono::CronoJob:0xbc9966fc> /usr/local/lib/ruby/gems/2.1.0/gems/activemodel-4.1.0/lib/active_model/attribute_methods.rb:435:in `method_missing' /usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/attribute_methods.rb:206:in `method_missing' /usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_model/mass_assignment_security.rb:354:in `sanitize_for_mass_assignment' /usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_record/mass_assignment_security/attribute_assignment.rb:58:in `assign_attributes' /usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_record/mass_assignment_security/core.rb:8:in `init_attributes' /usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/core.rb:198:in `initialize' /usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/inheritance.rb:30:in `new' /usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/inheritance.rb:30:in `new' /usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_record/mass_assignment_security/persistence.rb:45:in `create' /usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/relation.rb:132:in `block in create' /usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/relation.rb:286:in `scoping' /usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/relation.rb:132:in `create' /usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_record/mass_assignment_security/relation.rb:57:in `find_or_create_by' /usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/querying.rb:6:in `find_or_create_by' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/job.rb:102:in `model' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/job.rb:49:in `load' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/scheduler.rb:11:in `add_job' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/performer_proxy.rb:11:in `every' /var/www/billgist/web_app/config/cronotab.rb:14:in `<top (required)>' /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in `require' /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in `block in require' /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:232:in `load_dependency' /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in `require' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/cronotab.rb:7:in `process' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/cli.rb:24:in `run' /usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/exe/crono:8:in `<top (required)>' /usr/local/bin/crono:23:in `load' /usr/local/bin/crono:23:in `<main>' ``` Then After Migrating to **_Rails 4.2.0**_ it's working now
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/crono#29