ruby on rails - ActiveRecord::RecordInvalid: Validation failed: Left side must exist -
i have no idea why error happening. i'm using rails 5 master repo.
activerecord::base.transaction q = question.new({ ... random attrs }) q.tests.build({ name: 'teste', slug: 'teste', year: 1990 }) q.save! end class question < activerecord::base has_and_belongs_to_many :tests, join_table: :tests_questions end class test < activerecord::base has_and_belongs_to_many :questions, join_table: :tests_questions end some part of trace:
activerecord::recordinvalid: validation failed: left side must exist activerecord/lib/active_record/validations.rb:67:in `raise_validation_error' activerecord/lib/active_record/validations.rb:43:in `save!' activerecord/lib/active_record/attribute_methods/dirty.rb:29:in `save!' activerecord/lib/active_record/transactions.rb:303:in `block in save!' activerecord/lib/active_record/transactions.rb:374:in `block in with_transaction_returning_status' activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:210:in `transaction' activerecord/lib/active_record/transactions.rb:210:in `transaction' activerecord/lib/active_record/transactions.rb:371:in `with_transaction_returning_status' activerecord/lib/active_record/transactions.rb:303:in `save!' activerecord/lib/active_record/associations/has_many_through_association.rb:84:in `save_through_record' activerecord/lib/active_record/associations/has_many_through_association.rb:47:in `insert_record' activerecord/lib/active_record/autosave_association.rb:379:in `block in save_collection_association' activerecord/lib/active_record/autosave_association.rb:370:in `each' activerecord/lib/active_record/autosave_association.rb:370:in `save_collection_association' activerecord/lib/active_record/autosave_association.rb:184:in `block in add_autosave_association_callbacks' activerecord/lib/active_record/autosave_association.rb:157:in `instance_eval' activerecord/lib/active_record/autosave_association.rb:157:in `block in define_non_cyclic_method' activesupport/lib/active_support/callbacks.rb:428:in `block in make_lambda' activesupport/lib/active_support/callbacks.rb:229:in `call' activesupport/lib/active_support/callbacks.rb:229:in `block in halting_and_conditional' activesupport/lib/active_support/callbacks.rb:502:in `call' activesupport/lib/active_support/callbacks.rb:502:in `block in call' activesupport/lib/active_support/callbacks.rb:502:in `each' activesupport/lib/active_support/callbacks.rb:502:in `call' activesupport/lib/active_support/callbacks.rb:90:in `run_callbacks' activerecord/lib/active_record/callbacks.rb:305:in `_create_record' activerecord/lib/active_record/timestamp.rb:57:in `_create_record' activerecord/lib/active_record/persistence.rb:521:in `create_or_update' activerecord/lib/active_record/callbacks.rb:301:in `block in create_or_update' activesupport/lib/active_support/callbacks.rb:117:in `call' activesupport/lib/active_support/callbacks.rb:117:in `call' activesupport/lib/active_support/callbacks.rb:558:in `block (2 levels) in compile' activesupport/lib/active_support/callbacks.rb:501:in `call' activesupport/lib/active_support/callbacks.rb:501:in `call' activesupport/lib/active_support/callbacks.rb:90:in `run_callbacks' activerecord/lib/active_record/callbacks.rb:301:in `create_or_update' activerecord/lib/active_record/suppressor.rb:41:in `create_or_update' activerecord/lib/active_record/persistence.rb:151:in `save!' activerecord/lib/active_record/validations.rb:43:in `save!' activerecord/lib/active_record/attribute_methods/dirty.rb:29:in `save!' activerecord/lib/active_record/transactions.rb:303:in `block in save!' activerecord/lib/active_record/transactions.rb:374:in `block in with_transaction_returning_status' activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:210:in `transaction' activerecord/lib/active_record/transactions.rb:210:in `transaction' activerecord/lib/active_record/transactions.rb:371:in `with_transaction_returning_status' activerecord/lib/active_record/transactions.rb:303:in `save!' when use = method, instead of build, active record ignore join_table, picking table name questions_tests instead of tests_questions.
ex.:
q.tests = [] of tests nomethoderror: undefined method `questions_tests' #<question:0x0000000516b188>
Comments
Post a Comment