Ruby On Rails callbacks don't work on Heroku, but work locally -
i've been working on school appplication using rails_admin. working fine locally when push heroku callbacks defined in models not used, not simple. come asking if has encountered problem before or me interpret logs because cannot find reason this.
first, gemfile looks like:
source 'https://rubygems.org' ruby '2.2.0' group :development, :test gem 'railroady' end # documenting models automatically gem 'annotate', '~> 2.6.6' # styling html using sass gem 'bourbon' gem 'neat' gem 'bitters' # using creating sql triggers inside models gem 'hairtrigger' # creating seed data files existing data in database gem 'seed_dump' # used translations of mailer , account confirmations gem 'devise-i18n' # user permissions , login gem 'devise' gem 'cancancan', '~> 1.10' gem "rolify" gem "figaro" gem "rails_admin" # bundle edge rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '4.2.1' # use sqlite3 database active record on development environment gem 'sqlite3', group: :development # use postgresql database active record on production environment gem 'pg', group: :production # use scss stylesheets gem 'sass-rails', '~> 5.0' # use uglifier compressor javascript assets gem 'uglifier', '>= 1.3.0' # use coffeescript .js.coffee assets , views gem 'coffee-rails', '~> 4.1.0' # see https://github.com/sstephenson/execjs#readme more supported runtimes # gem 'therubyracer', platforms: :ruby # use jquery javascript library gem 'jquery-rails' # turbolinks makes following links in web application faster. read more: https://github.com/rails/turbolinks gem 'turbolinks' # build json apis ease. read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 2.0' # bundle exec rake doc:rails generates api under doc/api. gem 'sdoc', '~> 0.4.0', group: :doc # spring speeds development keeping application running in background. read more: https://github.com/rails/spring gem 'spring', group: :development gem 'rails_12factor', group: :production
and models i'm using callbacks in:
region.rb
# == schema information # # table name: regions # # id :integer not null, primary key # name :varchar # key :varchar # created_at :datetime not null # updated_at :datetime not null # class region < activerecord::base has_many :events, :dependent => :destroy, :inverse_of => :region has_and_belongs_to_many :staff_members before_create :generate_key rails_admin visible bindings[:controller].current_user.roles.first.name == "super_admin" end list field :id field :name field :key end edit field :name required true "por favor llena este campo." end end end private def generate_key self.key = self.name[0..1] end end
team.rb
# == schema information # # table name: teams # # id :integer not null, primary key # name :varchar # key :varchar # date_of_registration :date # company_name :varchar # category_id :integer # address_id :integer # created_at :datetime not null # updated_at :datetime not null # winner :boolean # class team < activerecord::base belongs_to :category, :inverse_of => :teams belongs_to :address, :inverse_of => :teams has_many :evaluations, :dependent => :destroy, :inverse_of => :team has_many :team_members, :dependent => :destroy, :inverse_of => :team has_and_belongs_to_many :events before_save :generate_key def team_label_method "#{self.key} - #{self.name}" end rails_admin object_label_method :team_label_method end list field :id column_width 40 end field :name column_width 100 end field :key column_width 90 end field :company_name column_width 100 end field :category column_width 70 end field :events column_width 100 end field :winner column_width 10 end field :address column_width 50 end end edit field :name required true "por favor llena este campo." end #field :key # required true # "por favor llena este campo." #end field :company_name required true "por favor llena este campo." end field :category required true "por favor llena este campo." end field :winner default_value = false "llenar sólo si este equipo es ganador del concurso nacional." end field :address required true "por favor llena este campo." end field :team_members field :events required true "por favor llena este campo." end field :date_of_registration required true "por favor llena este campo." end end end private def generate_key standing = "r" self.events.each |current_event| if current_event.event_type == "nacional" standing = "n" end end if self.winner == true standing = "g" end region_key = self.events.last.region.key year = self.date_of_registration.year id = self.id.to_s.rjust(3, '0') category = self.category.key special = 0 case self.category.key when "s1" special = 1 when "s2" special = 2 when "s3" special = 3 when "s4" special = 4 end self.key = "#{standing}#{region_key}#{year}#{id}#{category}#{special}".upcase end end
this logs on heroku when try create new region:
2015-06-02t21:05:45.566768+00:00 heroku[router]: at=info method=get path="/admin/region?_pjax=%5bdata-pjax-container%5d" host=sistema-de-evaluaciones-amte.herokuapp.com request_id=887af50d-bfb8-4a96-889d-e858d980838e fwd="189.241.62.189" dyno=web.1 connect=1ms service=415ms status=200 bytes=11925 2015-06-02t21:05:45.512300+00:00 app[web.1]: rendered vendor/bundle/ruby/2.2.0/gems/rails_admin-0.6.7/app/views/rails_admin/main/index.html.haml within layouts/rails_admin/pjax (296.2ms) 2015-06-02t21:05:45.548529+00:00 app[web.1]: completed 200 ok in 360ms (views: 321.1ms | activerecord: 22.2ms) 2015-06-02t21:05:47.282570+00:00 heroku[router]: at=info method=get path="/admin/region/new?_pjax=%5bdata-pjax-container%5d" host=sistema-de-evaluaciones-amte.herokuapp.com request_id=d8566b9a-943a-4265-afd2-6f339c52c633 fwd="189.241.62.189" dyno=web.1 connect=2ms service=59ms status=200 bytes=3960 2015-06-02t21:05:47.224731+00:00 app[web.1]: processing railsadmin::maincontroller#new html 2015-06-02t21:05:47.260190+00:00 app[web.1]: rendered vendor/bundle/ruby/2.2.0/gems/rails_admin-0.6.7/app/views/rails_admin/main/_submit_buttons.html.haml (12.7ms) 2015-06-02t21:05:47.224784+00:00 app[web.1]: parameters: {"_pjax"=>"[data-pjax-container]", "model_name"=>"region"} 2015-06-02t21:05:47.272787+00:00 app[web.1]: completed 200 ok in 48ms (views: 34.2ms | activerecord: 3.7ms) 2015-06-02t21:05:47.245920+00:00 app[web.1]: rendered vendor/bundle/ruby/2.2.0/gems/rails_admin-0.6.7/app/views/rails_admin/main/_form_field.html.haml (1.3ms) 2015-06-02t21:05:47.222221+00:00 app[web.1]: started "/admin/region/new?_pjax=%5bdata-pjax-container%5d" 189.241.62.189 @ 2015-06-02 21:05:47 +0000 2015-06-02t21:05:47.260810+00:00 app[web.1]: rendered vendor/bundle/ruby/2.2.0/gems/rails_admin-0.6.7/app/views/rails_admin/main/new.html.haml within layouts/rails_admin/pjax (21.0ms) 2015-06-02t21:05:50.197718+00:00 app[web.1]: started post "/admin/region/new" 189.241.62.189 @ 2015-06-02 21:05:50 +0000 2015-06-02t21:05:50.336844+00:00 app[web.1]: processing railsadmin::maincontroller#index html 2015-06-02t21:05:50.336854+00:00 app[web.1]: parameters: {"model_name"=>"region"} 2015-06-02t21:05:50.447221+00:00 app[web.1]: rendered vendor/bundle/ruby/2.2.0/gems/rails_admin-0.6.7/app/views/rails_admin/main/index.html.haml within layouts/rails_admin/application (96.7ms) 2015-06-02t21:05:50.199887+00:00 app[web.1]: processing railsadmin::maincontroller#new html 2015-06-02t21:05:50.199969+00:00 app[web.1]: parameters: {"utf8"=>"✓", "authenticity_token"=>"jajkjulqhu2i1z0io6pmde/nzkzb1ka2hgwl8dyaucb22tyfftstrnop57hktf2ye0dxs1snbzt/wqgohwn+6w==", "region"=>{"name"=>"prueba"}, "return_to"=>"https://sistema-de-evaluaciones-amte.herokuapp.com/admin/region", "_save"=>"", "model_name"=>"region"} 2015-06-02t21:05:50.224054+00:00 app[web.1]: redirected https://sistema-de-evaluaciones-amte.herokuapp.com/admin/region 2015-06-02t21:05:50.224993+00:00 app[web.1]: completed 302 found in 24ms (activerecord: 10.2ms) 2015-06-02t21:05:50.334556+00:00 app[web.1]: started "/admin/region" 189.241.62.189 @ 2015-06-02 21:05:50 +0000 2015-06-02t21:05:50.240345+00:00 heroku[router]: at=info method=post path="/admin/region/new" host=sistema-de-evaluaciones-amte.herokuapp.com request_id=346211ad-fcf1-4012-9239-3884d01ff0a3 fwd="189.241.62.189" dyno=web.1 connect=1ms service=42ms status=302 bytes=1218 2015-06-02t21:05:50.454815+00:00 app[web.1]: rendered vendor/bundle/ruby/2.2.0/gems/rails_admin-0.6.7/app/views/layouts/rails_admin/_navigation.html.haml (5.5ms) 2015-06-02t21:05:50.454724+00:00 app[web.1]: rendered vendor/bundle/ruby/2.2.0/gems/rails_admin-0.6.7/app/views/layouts/rails_admin/_secondary_navigation.html.haml (4.9ms) 2015-06-02t21:05:50.485504+00:00 app[web.1]: rendered vendor/bundle/ruby/2.2.0/gems/rails_admin-0.6.7/app/views/layouts/rails_admin/pjax.html.haml (10.2ms) 2015-06-02t21:05:50.486076+00:00 app[web.1]: completed 200 ok in 149ms (views: 114.7ms | activerecord: 24.4ms) 2015-06-02t21:05:50.502507+00:00 heroku[router]: at=info method=get path="/admin/region" host=sistema-de-evaluaciones-amte.herokuapp.com request_id=e2439dad-9f8d-407b-b3c8-5229bad08b58 fwd="189.241.62.189" dyno=web.1 connect=6ms service=167ms status=200 bytes=16948
and see when same in local server, can see, in post block clear "key" element argument insert query.
started post "/admin/region/new" 127.0.0.1 @ 2015-06-02 16:10:18 -0500 processing railsadmin::maincontroller#new html parameters: {"utf8"=>"✓", "authenticity_token"=>"r8fqgzosomw4c3p/al/byeqeiy+bnbam0wpcdnzypf+n0v1yentdulxe/aft5jbvaljfkvmfubfkiqipxsx1qw==", "region"=>{"name"=>"prueba"}, "return_to"=>"http://localhost:3000/admin/region", "_save"=>"", "model_name"=>"region"} user load (0.2ms) select "users".* "users" "users"."id" = ? order "users"."id" asc limit 1 [["id", 1]] role load (0.2ms) select "roles".* "roles" inner join "users_roles" on "roles"."id" = "users_roles"."role_id" "users_roles"."user_id" = ? , (((roles.name = 'super_admin') , (roles.resource_type null) , (roles.resource_id null))) [["user_id", 1]] role load (0.3ms) select "roles".* "roles" inner join "users_roles" on "roles"."id" = "users_roles"."role_id" "users_roles"."user_id" = ? order "roles"."id" asc limit 1 [["user_id", 1]] (0.3ms) begin transaction sql (0.6ms) insert "regions" ("name", "created_at", "updated_at", "key") values (?, ?, ?, ?) [["name", "prueba"], ["created_at", "2015-06-02 21:10:18.391401"], ["updated_at", "2015-06-02 21:10:18.391401"], ["key", "pr"]] (150.7ms) commit transaction redirected http://localhost:3000/admin/region completed 302 found in 175ms (activerecord: 152.2ms)
i found error! had sql trigger else on team directly created on postgresql database on heroku on earlier stage of development because being called @ same time callback, once dropped started work intended.
Comments
Post a Comment