Hi, I have a strange redirection issue that I cannot figure out myself. This is what I would like to get (the default behaviour of activescaffold): Via an action link in the antibodies table, associated antibody_instances are shown nested within the antibodies list. When whithin the nested antibody_instances list another antibody_instance is created, after creation the create form is closed and the new instance is shown in the nested list. (The browser stays at http://111.dyndns.org:3001/antibodies)
What I do get: After creating another antibody_instance in the nested table, the antibody_instances of the respective antibody are not shown nested, but in a non-nested list (Redirected to http://111.dyndns.org:3001/antibody_instances?eid=9d7cf42afd28047c1f66ddaea12530ce) This happens only for classes, that have_one storage_assignment (like AntibodyInstance). class Antibody has_many :antibody_instances class AntibodyInstance belongs_to :antibody has_one :storage_assignment, :as => :item, :conditions => "storage_assignments.item_type = 'AntibodyInstance'", :dependent => :delete has_one :storage, :through => :storage_assignment, :as => :item class Storage has_many :storage_assignments has_many :antibody_instances, :through => :storage_assignments, :source => :item, :source_type => "AntibodyInstance" class StorageAssignment belongs_to :storage, :class_name => '::Storage' # otherwise, it clashes with PaperClip::Storage belongs_to :item, :polymorphic => true belongs_to :slot class Slot has_many :storage_assignments belongs_to :grid class Grid has_many :slots belongs_to :storage_assignment The nested create-post of a well behaving class (does not have_one storage_assignment) looks like: Processing MarkersController#create (for 11.111.111.111 at 2011-05-03 11:19:32) [POST] Parameters: {"eid"=>"3f1ea33b0ab5b9c5bfe3ce2dc256ee35", "parent_column"=>"children", "commit"=>"Create", "nested"=>"true", "action"=>"create", "authenticity_token"=>"MibMg6+ktEG12PyKSBQKr0fVWpHVtvQhD3rC+v99ukA=", "parent_model"=>"Marker", "controller"=>"markers", "record"=>{"name"=>"löschen"}} create_authroized: {:parent=>"1"} Marker Load (0.2ms) SELECT * FROM `markers` WHERE (`markers`.`id` = '1') LIMIT 1 User Columns (0.6ms) SHOW FIELDS FROM `users` User Load (0.2ms) SELECT * FROM `users` WHERE (`users`.`id` = '1') LIMIT 1 SQL (0.1ms) BEGIN User Update (0.2ms) UPDATE `users` SET `updated_at` = '2011-05-03 11:19:32', `last_request_at` = '2011-05-03 11:19:32' WHERE `id` = 1 SQL (100.3ms) COMMIT SQL (0.1ms) BEGIN Marker Load (0.2ms) SELECT * FROM `markers` WHERE (`markers`.`id` = 1) Marker Load (0.2ms) SELECT `markers`.id FROM `markers` WHERE (`markers`.`name` = BINARY 'löschen') LIMIT 1 CACHE (0.0ms) SELECT `markers`.id FROM `markers` WHERE (`markers`.`name` = BINARY 'löschen') LIMIT 1 SQL (0.9ms) SELECT max(`markers`.rgt) AS max_rgt FROM `markers` Marker Create (0.2ms) INSERT INTO `markers` (`name`, `created_at`, `updated_at`, `lft`, `user_id`, `parent_id`, `rgt`) VALUES('löschen', '2011-05-03 11:19:32', '2011-05-03 11:19:32', 3331, NULL, 1, 3332) Marker Load (0.2ms) SELECT * FROM `markers` WHERE (`markers`.`id` = 1) ORDER BY `lft` Marker Load (0.2ms) SELECT `lft`, `rgt`, `parent_id` FROM `markers` WHERE (`markers`.`id` = 1721) Marker Update (21.5ms) UPDATE `markers` SET `lft` = CASE WHEN `lft` BETWEEN 6 AND 3330 THEN `lft` + 3332 - 3330 WHEN `lft` BETWEEN 3331 AND 3332 THEN `lft` + 6 - 3331 ELSE `lft` END, `rgt` = CASE WHEN `rgt` BETWEEN 6 AND 3330 THEN `rgt` + 3332 - 3330 WHEN `rgt` BETWEEN 3331 AND 3332 THEN `rgt` + 6 - 3331 ELSE `rgt` END, `parent_id` = CASE WHEN id = 1721 THEN 1 ELSE `parent_id` END Marker Load (0.2ms) SELECT `lft`, `rgt`, `parent_id` FROM `markers` WHERE (`markers`.`id` = 1) Marker Load (0.2ms) SELECT `lft`, `rgt`, `parent_id` FROM `markers` WHERE (`markers`.`id` = 1721) Marker Load (0.2ms) SELECT * FROM `markers` WHERE (`markers`.`id` = 1) Marker Load (0.2ms) SELECT * FROM `markers` WHERE (`markers`.`id` = 1) ORDER BY `lft` CACHE (0.0ms) SELECT `lft`, `rgt`, `parent_id` FROM `markers` WHERE (`markers`.`id` = 1721) SQL (127.5ms) COMMIT Rendering on_create CellLine Columns (0.7ms) SHOW FIELDS FROM `cell_lines` SQL (0.3ms) SELECT count(*) AS count_all FROM `cell_lines` WHERE (`cell_lines`.marker_id = 1721) CACHE (0.0ms) SELECT * FROM `markers` WHERE (`markers`.`id` = 1) Antibody Columns (0.6ms) SHOW FIELDS FROM `antibodies` SQL (0.4ms) SELECT count(*) AS count_all FROM `antibodies` WHERE (`antibodies`.marker_id = 1721) SQL (1.3ms) SELECT count(*) AS count_all FROM `markers` WHERE ((`markers`.id != 1721) AND (`markers`.`lft` >= 6 AND `markers`.`rgt` <= 7)) Rendered _list_actions (122.4ms) Rendered _list_record (137.8ms) Rendered _messages (1.0ms) Completed in 451ms (View: 156, DB: 258) | 200 OK [http:// 111.dyndns.org/markers? eid=3f1ea33b0ab5b9c5bfe3ce2dc256ee35&nested=true&parent_column=children&parent_model=Marker] For a class where false redirection to the non-nested list occurs, it looks like: Processing AntibodyInstancesController#create (for 11.111.111.111 at 2011-05-03 11:26:50) [POST] Parameters: {"eid"=>"9d7cf42afd28047c1f66ddaea12530ce", "parent_column"=>"antibody_instances", "commit"=>"Create", "nested"=>"true", "action"=>"create", "authenticity_token"=>"MibMg6+ktEG12PyKSBQKr0fVWpHVtvQhD3rC+v99ukA=", "parent_model"=>"Antibody", "controller"=>"antibody_instances", "record"=>{"opened(3i)"=>"3", "usebefore_status"=>"unknown", "storage_assignment"=>{"storage"=>{"id"=>"8"}}, "lotnumber"=>"lsöchen", "usebefore(1i)"=>"2011", "opened_status"=>"unopened", "usebefore(2i)"=>"5", "opened(1i)"=>"2011", "usebefore(3i)"=>"3", "opened(2i)"=>"5"}} User Load (0.2ms) SELECT * FROM `users` WHERE (`users`.`id` = '1') LIMIT 1 SQL (0.1ms) BEGIN User Update (0.2ms) UPDATE `users` SET `updated_at` = '2011-05-03 11:26:50', `last_request_at` = '2011-05-03 11:26:50' WHERE `id` = 1 SQL (142.7ms) COMMIT Antibody Load (0.2ms) SELECT * FROM `antibodies` WHERE (`antibodies`.`id` = '619') LIMIT 1 SourceKind Load (0.2ms) SELECT * FROM `source_kinds` WHERE (`source_kinds`.`id` = 1) SQL (0.1ms) BEGIN Storage Load (0.2ms) SELECT * FROM `storages` WHERE (`storages`.`id` = 8) Antibody Load (0.2ms) SELECT * FROM `antibodies` WHERE (`antibodies`.`id` = 619) CACHE (0.0ms) SELECT * FROM `source_kinds` WHERE (`source_kinds`.`id` = 1) Storage Load (0.6ms) SELECT `storages`.id FROM `storages` WHERE (`storages`.`name` = BINARY 'BNI' AND `storages`.parent_id IS NULL AND `storages`.id <> 8) LIMIT 1 AntibodyInstance Create (0.2ms) INSERT INTO `antibody_instances` (`created_at`, `opened`, `mass`, `updated_at`, `tests`, `antibody_id`, `concentration`, `lotnumber`, `user_id`, `volume`, `usebefore`, `isexhausted`) VALUES('2011-05-03 11:26:50', NULL, NULL, '2011-05-03 11:26:50', NULL, 619, NULL, 'lsöchen', 1, NULL, NULL, 0) StorageAssignment Create (0.2ms) INSERT INTO `storage_assignments` (`storage_id`, `created_at`, `updated_at`, `slot_id`, `item_id`, `item_type`) VALUES(8, '2011-05-03 11:26:50', '2011-05-03 11:26:50', NULL, 794, 'AntibodyInstance') SQL (112.5ms) COMMIT Marker Load (0.2ms) SELECT * FROM `markers` WHERE (`markers`.`id` = 519) Conjugate Load (0.2ms) SELECT * FROM `conjugates` WHERE (`conjugates`.`id` = 19) Manufacturer Load (0.2ms) SELECT * FROM `manufacturers` WHERE (`manufacturers`.`id` = 20) Redirected to http://111.dyndns.org:3001/antibody_instances?eid=9d7cf42afd28047c1f66ddaea12530ce Completed in 290ms (DB: 266) | 302 Found [http://111.dyndns.org/ antibody_instances? eid=9d7cf42afd28047c1f66ddaea12530ce&nested=true&parent_column=antibody_instances&parent_model=Antibody] SQL (0.0ms) SET NAMES 'utf8' SQL (0.0ms) SET SQL_AUTO_IS_NULL=0 AntibodyInstance Columns (0.6ms) SHOW FIELDS FROM `antibody_instances` Antibody Columns (0.7ms) SHOW FIELDS FROM `antibodies` User Columns (0.6ms) SHOW FIELDS FROM `users` Conjugate Columns (0.4ms) SHOW FIELDS FROM `conjugates` Isotypeh Columns (0.4ms) SHOW FIELDS FROM `isotypehs` Isotypel Columns (0.4ms) SHOW FIELDS FROM `isotypels` Manufacturer Columns (0.4ms) SHOW FIELDS FROM `manufacturers` Marker Columns (0.5ms) SHOW FIELDS FROM `markers` Origin Columns (0.4ms) SHOW FIELDS FROM `origins` ReagentType Columns (0.4ms) SHOW FIELDS FROM `reagent_types` SourceKind Columns (0.4ms) SHOW FIELDS FROM `source_kinds` StorageAssignment Columns (0.4ms) SHOW FIELDS FROM `storage_assignments` Slot Columns (0.4ms) SHOW FIELDS FROM `slots` Grid Columns (0.4ms) SHOW FIELDS FROM `grids` Storage Columns (0.4ms) SHOW FIELDS FROM `storages` Group Columns (0.4ms) SHOW FIELDS FROM `groups` Processing AntibodyInstancesController#index (for 11.111.111.111 at 2011-05-03 11:26:53) [GET] Parameters: {"eid"=>"9d7cf42afd28047c1f66ddaea12530ce", "action"=>"index", "controller"=>"antibody_instances"} Antibody Load (0.2ms) SELECT * FROM `antibodies` WHERE (`antibodies`.`id` = '619') LIMIT 1 SourceKind Load (0.2ms) SELECT * FROM `source_kinds` WHERE (`source_kinds`.`id` = 1) SQL (4.3ms) SELECT count(DISTINCT `antibody_instances`.id) AS count_all FROM `antibody_instances` LEFT OUTER JOIN `users` ON `users`.id = `antibody_instances`.user_id LEFT OUTER JOIN `storage_assignments` ON `storage_assignments`.item_id = `antibody_instances`.id AND `storage_assignments`.item_type = 'AntibodyInstance'AND storage_assignments.item_type = 'AntibodyInstance' LEFT OUTER JOIN `comments` ON `comments`.item_id = `antibody_instances`.id AND `comments`.item_type = 'AntibodyInstance' LEFT OUTER JOIN `attachments` ON `attachments`.item_id = `antibody_instances`.id AND `attachments`.item_type = 'AntibodyInstance' LEFT OUTER JOIN `antibodies` ON `antibodies`.id = `antibody_instances`.antibody_id WHERE (((antibody_instances.antibody_id = '619'))) AntibodyInstance Load (0.9ms) SELECT `antibody_instances`.* FROM `antibody_instances` WHERE (((antibody_instances.antibody_id = '619'))) ORDER BY `antibody_instances`.`created_at` DESC LIMIT 0, 40 User Load (0.2ms) SELECT * FROM `users` WHERE (`users`.`id` = 1) StorageAssignment Load (0.8ms) SELECT `storage_assignments`.* FROM `storage_assignments` WHERE (`storage_assignments`.`item_id` IN (794,793,792) and `storage_assignments`.`item_type` = 'AntibodyInstance' AND (storage_assignments.item_type = 'AntibodyInstance')) Comment Load (0.5ms) SELECT `comments`.* FROM `comments` WHERE (`comments`.`item_id` IN (794,793,792) and `comments`.`item_type` = 'AntibodyInstance') Attachment Load (1.1ms) SELECT `attachments`.* FROM `attachments` WHERE (`attachments`.`item_id` IN (794,793,792) and `attachments`.`item_type` = 'AntibodyInstance') Antibody Load (0.2ms) SELECT * FROM `antibodies` WHERE (`antibodies`.`id` = 619) Rendering template within layouts/application Rendering list User Load (0.2ms) SELECT * FROM `users` WHERE (`users`.`id` = '1') LIMIT 1 SQL (0.1ms) BEGIN User Update (0.2ms) UPDATE `users` SET `updated_at` = '2011-05-03 11:26:53', `last_request_at` = '2011-05-03 11:26:53' WHERE `id` = 1 SQL (90.4ms) COMMIT Rendered _list_header (113.4ms) Rendered _list_column_headings (38.8ms) Rendered _messages (1.1ms) Group Load (0.2ms) SELECT * FROM `groups` WHERE (`groups`.`id` = 9) Group Load (0.3ms) SELECT * FROM `groups` WHERE (`groups`.`lft` <= 4 AND `groups`.`rgt` >= 5) ORDER BY `lft` Storage Load (0.8ms) SELECT `storages`.* FROM `storages` INNER JOIN `storage_assignments` ON `storages`.id = `storage_assignments`.storage_id WHERE ((`storage_assignments`.item_id = 794) AND (`storage_assignments`.item_type = 'AntibodyInstance') AND ((storage_assignments.item_type = 'AntibodyInstance'))) Storage Load (0.5ms) SELECT * FROM `storages` WHERE (`storages`.`lft` <= 1 AND `storages`.`rgt` >= 856) ORDER BY `lft` SourceKind Load (0.2ms) SELECT * FROM `source_kinds` WHERE (`source_kinds`.`id` = 1) Attachment Columns (0.5ms) SHOW FIELDS FROM `attachments` Marker Load (0.2ms) SELECT * FROM `markers` WHERE (`markers`.`id` = 519) Conjugate Load (0.2ms) SELECT * FROM `conjugates` WHERE (`conjugates`.`id` = 19) Manufacturer Load (0.2ms) SELECT * FROM `manufacturers` WHERE (`manufacturers`.`id` = 20) Rendered _list_actions (19.5ms) Rendered _list_record (53.1ms) CACHE (0.0ms) SELECT * FROM `groups` WHERE (`groups`.`lft` <= 4 AND `groups`.`rgt` >= 5) ORDER BY `lft` Storage Load (0.7ms) SELECT `storages`.* FROM `storages` INNER JOIN `storage_assignments` ON `storages`.id = `storage_assignments`.storage_id WHERE ((`storage_assignments`.item_id = 793) AND (`storage_assignments`.item_type = 'AntibodyInstance') AND ((storage_assignments.item_type = 'AntibodyInstance'))) CACHE (0.0ms) SELECT * FROM `storages` WHERE (`storages`.`lft` <= 1 AND `storages`.`rgt` >= 856) ORDER BY `lft` Rendered _list_actions (5.7ms) Rendered _list_record (16.7ms) CACHE (0.0ms) SELECT * FROM `groups` WHERE (`groups`.`lft` <= 4 AND `groups`.`rgt` >= 5) ORDER BY `lft` Storage Load (0.7ms) SELECT `storages`.* FROM `storages` INNER JOIN `storage_assignments` ON `storages`.id = `storage_assignments`.storage_id WHERE ((`storage_assignments`.item_id = 792) AND (`storage_assignments`.item_type = 'AntibodyInstance') AND ((storage_assignments.item_type = 'AntibodyInstance'))) CACHE (0.0ms) SELECT * FROM `storages` WHERE (`storages`.`lft` <= 1 AND `storages`.`rgt` >= 856) ORDER BY `lft` Rendered _list_actions (5.6ms) Rendered _list_record (16.3ms) Rendered _list (265.3ms) Completed in 432ms (View: 313, DB: 112) | 200 OK [http:// 111.dyndns.org/antibody_instances? eid=9d7cf42afd28047c1f66ddaea12530ce] Why does the redirect occur and how can I prevent it? Thanks Guido -- You received this message because you are subscribed to the Google Groups "ActiveScaffold : Ruby on Rails plugin" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/activescaffold?hl=en.
