Cześć. Mam dość dziwny problem, robię sobie byle jaki insert do bazy danych, via ActiveRecord i dostaję SQL syntax error, eg:
Mysql2::Error: Something is wrong in your syntax obok '' w linii 1: INSERT INTO `terms_accept_logs` (`accepted`, `created_at`, `terms_version_id`, `updated_at`, `user_id`) VALUES (, , , , )
Problemem są oczywiście brakujące wartości, przy czym gdzie one znikają? Problem jest o tyle dziwny, że na innej maszynie w tej samej konfiguracji (Ruby 3.1.6) wszystko działa.
Ktoś z Was spotkał się z czymś podobnym?
Loading staging environment (Rails 3.1.6)
irb(main):001:0> tal = User.find(4).terms_accept_logs.build({:accepted => true, :terms_version => TermsVersion.current})
TermsVersion Load (0.6ms) SELECT `terms_versions`.* FROM `terms_versions` WHERE `terms_versions`.`current` = 1 LIMIT 1
=> #<TermsAcceptLog id: nil, user_id: 4, terms_version_id: 2, accepted: true, created_at: nil, updated_at: nil>
irb(main):002:0> tal.save!
(0.3ms) BEGIN
SQL (0.8ms) INSERT INTO `terms_accept_logs` (`accepted`, `created_at`, `terms_version_id`, `updated_at`, `user_id`) VALUES (, , , , )
(0.3ms) ROLLBACK
ActiveRecord::StatementInvalid: Mysql2::Error: Something is wrong in your syntax obok '' w linii 1: INSERT INTO `terms_accept_logs` (`accepted`, `created_at`, `terms_version_id`, `updated_at`, `user_id`) VALUES (, , , , )
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/connection_adapters/mysql2_adapter.rb:288:in `query'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/connection_adapters/mysql2_adapter.rb:288:in `block in execute'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/connection_adapters/abstract_adapter.rb:245:in `block in log'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activesupport-3.1.6/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/connection_adapters/abstract_adapter.rb:240:in `log'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/connection_adapters/mysql2_adapter.rb:288:in `execute'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/connection_adapters/mysql2_adapter.rb:305:in `exec_insert'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/connection_adapters/abstract/database_statements.rb:92:in `insert'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/connection_adapters/abstract/query_cache.rb:14:in `insert'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/relation.rb:70:in `insert'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/persistence.rb:313:in `create'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/timestamp.rb:51:in `create'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/callbacks.rb:268:in `block in create'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activesupport-3.1.6/lib/active_support/callbacks.rb:390:in `_run_create_callbacks'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activesupport-3.1.6/lib/active_support/callbacks.rb:81:in `run_callbacks'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/callbacks.rb:268:in `create'
... 4 levels...
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/callbacks.rb:264:in `create_or_update'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/persistence.rb:57:in `save!'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/validations.rb:56:in `save!'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/attribute_methods/dirty.rb:33:in `save!'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/transactions.rb:246:in `block in save!'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/transactions.rb:295:in `block in with_transaction_returning_status'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/connection_adapters/abstract/database_statements.rb:194:in `transaction'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/transactions.rb:208:in `transaction'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/transactions.rb:293:in `with_transaction_returning_status'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/transactions.rb:246:in `save!'
from (irb):2
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.1.6/lib/rails/commands/console.rb:45:in `start'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.1.6/lib/rails/commands/console.rb:8:in `start'
from /opt/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.1.6/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'irb(main):003:0> quit
Od razu dopiszę, nie upatrywał bym problemu w kodzie, wszystkie inserty kończą się tym samym błędem, podejrzewam, że to raczej kwestia konfiguracji, brakujących modułów, etc, przy czym na nic nie mogę wpaść