Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## with [] instead of {} produces this error
- ActiveRecord::StatementInvalid: SQLite3::SQLException: near "(": syntax error: SELECT * FROM "lessons" WHERE ("lessons".course_id = 20 AND (id IS NOT (NULL,12,12,13,14,15))) ORDER BY position, position LIMIT 1
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract_adapter.rb:147:in `log'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/sqlite_adapter.rb:132:in `execute'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/sqlite_adapter.rb:360:in `catch_schema_changes'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/sqlite_adapter.rb:132:in `execute'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/sqlite_adapter.rb:263:in `select'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in `select_all_without_query_cache'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract/query_cache.rb:61:in `select_all'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:582:in `find_by_sql'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:1341:in `find_every'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:1303:in `find_initial'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:534:in `find'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/associations/association_collection.rb:47:in `find'
- from C:/Users/Mel/Projects/BrainBank/app/models/enrollment.rb:33:in `next_lesson'
- from (irb):37
- ## inside console
- >> @e = Enrollment.find(210)
- => #<Enrollment id: 210, user_id: 23, course_id: 20, status: "started", created_at: "2008-11-21 11:52:22", updated_at: "2008-11-21 11:52:23", email_delivery: nil>
- >> @e.next_lesson
- ActiveRecord::PreparedStatementInvalid: wrong number of bind variables (1 for 2) in: "lessons"."id IS NOT (?)" IN (?)
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:2090:in `raise_if_bind_arity_mismatch'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:2050:in `replace_bind_variables'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:2020:in `sanitize_sql_hash_for_conditions'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:1939:in `sanitize_sql'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/associations/association_proxy.rb:143:in `send'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/associations/association_proxy.rb:143:in `sanitize_sql'
- from C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/associations/association_collection.rb:28:in `find'
- from C:/Users/Mel/Projects/BrainBank/app/models/enrollment.rb:33:in `next_lesson'
- from (irb):34
- ## models/enrollment.rb
- class Enrollment < ActiveRecord::Base
- belongs_to :course
- has_many :lesson_completions
- def next_lesson
- completed = []
- self.lesson_completions.each do |c|
- completed << c.lesson
- end
- self.course.lessons.find(:first, :conditions => {"id IS NOT (?)", completed}, :order => "position")
- end
- end
- ## models/course.rb
- class Course < ActiveRecord::Base
- has_many :lessons, :dependent => :destroy, :order => :position
- end
Add Comment
Please, Sign In to add comment