Hobo 0.8.3 `ActiveRecord::HasManyThroughSourceAssociationMacroError in StoriesController#show Invalid source reflection macro :has_many :through for has_many :users, :through => :task_assignments. Use :source to specify the source reflection. RAILS_ROOT: /home/fredo/agility Application Trace | Framework Trace | Full Trace /opt/rubyee/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/reflection.rb:211:in `check_validity!' /opt/rubyee/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/associations/has_many_through_association.rb:5:in `initialize' /opt/rubyee/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/associations.rb:1128:in `new' /opt/rubyee/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/associations.rb:1128:in `users' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo.rb:149:in `send' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo.rb:149:in `get_field' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo.rb:293:in `can_view?' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/hobo_helper.rb:258:in `can_view?' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid_support.dryml:24:in `with_fields' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid_support.dryml:24:in `select' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid_support.dryml:24:in `with_fields' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:311:in `_tag_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:231:in `new_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:311:in `_tag_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid_support.dryml:1:in `with_fields' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid.dryml:16:in `field_list' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:231:in `new_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid.dryml:15:in `field_list' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:360:in `call' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:360:in `call_tag_parameter_with_default_content' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/tag_parameters.rb:21:in `call' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/tag_parameters.rb:21:in `method_missing' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/core.dryml:35:in `do_' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:311:in `_tag_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:231:in `new_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:311:in `_tag_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/core.dryml:35:in `do_' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:364:in `send' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:364:in `call_tag_parameter_with_default_content' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:386:in `call_tag_parameter' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid_document_tags.dryml:1:in `labelled_item_list' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:231:in `new_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid_document_tags.dryml:1:in `labelled_item_list' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/tag_parameters.rb:21:in `call' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/tag_parameters.rb:21:in `method_missing' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid.dryml:38:in `table' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:231:in `new_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid.dryml:37:in `table' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/tag_parameters.rb:21:in `call' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/tag_parameters.rb:21:in `method_missing' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/core.dryml:41:in `if_' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:311:in `_tag_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:231:in `new_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:311:in `_tag_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/core.dryml:39:in `if_' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid.dryml:37:in `table' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:311:in `_tag_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:231:in `new_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:311:in `_tag_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid.dryml:36:in `table' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid_document_tags.dryml:1:in `labelled_item_list' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:311:in `_tag_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:231:in `new_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:311:in `_tag_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid_document_tags.dryml:1:in `labelled_item_list' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid.dryml:15:in `field_list' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:311:in `_tag_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:231:in `new_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:311:in `_tag_context' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/taglibs/rapid.dryml:13:in `field_list' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:447:in `send' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:447:in `override_and_call_tag' /opt/rubyee/lib/ruby/gems/1.8/gems/hobo-0.8.3/lib/hobo/dryml/template_environment.rb:410:in `call_tag_parameter' app/views/taglibs/auto/rapid/forms.dryml:28:in `form__for_task' app/views/taglibs/auto/rapid/forms.dryml:26:in `form__for_task' app/views/taglibs/auto/rapid/forms.dryml:26:in `form__for_task' app/views/taglibs/auto/rapid/forms.dryml:25:in `form__for_task' app/views/taglibs/auto/rapid/pages.dryml:184:in `show_page__for_story' app/views/taglibs/auto/rapid/pages.dryml:182:in `show_page__for_story' app/views/taglibs/auto/rapid/pages.dryml:182:in `show_page__for_story' app/views/taglibs/auto/rapid/pages.dryml:177:in `show_page__for_story' app/views/taglibs/auto/rapid/pages.dryml:177:in `show_page__for_story' app/views/taglibs/auto/rapid/pages.dryml:174:in `show_page__for_story' app/views/taglibs/auto/rapid/pages.dryml:174:in `show_page__for_story' app/views/taglibs/auto/rapid/pages.dryml:166:in `show_page__for_story' app/views/taglibs/themes/clean/clean.dryml:2:in `page' app/views/taglibs/themes/clean/clean.dryml:1:in `page' app/views/taglibs/auto/rapid/pages.dryml:162:in `show_page__for_story' app/views/taglibs/auto/rapid/pages.dryml:161:in `show_page__for_story' Request Parameters: {"id"=>"1-require-role-admin"} Show session dump Response Headers: {"cookie"=>[], "Pragma"=>"no-cache", "Cache-Control"=>"no-store", "Expires"=>"0"}`