:url being ignored or routing problem?

background
i have a page with a drop-down menu item. if any of the choices is
selected, a partial gets activated to appear with new drop-down menu
choices. the initial page uses a select_tag, observe_field, and a div
to implement the above desired functionality. the pages i am working
with comprise a sub/child area within an "admin" area. this all used
to work, but for some reason stopped work at some unknown time.

troubleshooting
i'm looking at the log, and it seems to me that when i am at the
initial page (and surrounding pages), i am in the desired controller.
routing appears to be working as expected. however, when i test my
drop-down menu, it appears as though 1) the :url => {:controller => ..
details are being ignored; and 2) the parent "admin" controller only
is getting processed rather than the supposed current "admin/assets"
controller. it is as if the default, last route, " map.connect
':controller/:action/:id' " is being consulted rather than the :url in
observe_field or anything else higher pertaining to admin and assets
in routes. "assets" gets parsed as/demoted to an action rather than
as part of the controller.

<%= select_tag(:type, options_for_select(['[select
one]','page','program','event']), :id => 'type_selection') %>

<%= observe_field('type_selection',
  :frequency => 0.5,
  :update => 'page_selection',
  :url => {:controller => "admin/assets", :action => :set_pages},
  :with => "'type='+$('type_selection').value") %>

<div id="page_selection">
</div>

set_pages is defined as a method in the admin/assets controller.

questions
what (routing) is taking precedence? where is observe_field getting
its instructions from instead, why does it seem as if its :url
argument is being ignored?

i've performed the usual basic tasks, such as restarting the
application, etc. but obviously i'm missing something.. probably
something very basic :confused: please advise.

What is in the rendered html?

Fred

if i understand your question properly, i get a page with a partial,
where the partial area displays a 404 error ("The page you were
looking for doesn't exist. You may have mistyped the address or the
page may have moved.") i expect (but don't want!) this, since routing
is parsing my intentions all wrong, as described earlier.

if i understand your question properly, i get a page with a partial,
where the partial area displays a 404 error ("The page you were
looking for doesn't exist. You may have mistyped the address or the
page may have moved.") i expect (but don't want!) this, since routing
is parsing my intentions all wrong, as described earlier.

Please don't top post, it is easier to follow the thread if you insert
your reply at the appropriate point.
I think Fred wants to see the html of the page, you can see this using
View, Page Source (or similar) in the browser.

You can check that the html is valid (a good thing to check first when
strange things happen) by copying the complete html from the View
Source window and pasting it into the w3c html validator web site.

Colin

Colin

if i understand your question properly, i get a page with a partial,
where the partial area displays a 404 error ("The page you were
looking for doesn't exist. You may have mistyped the address or the
page may have moved.") i expect (but don't want!) this, since routing
is parsing my intentions all wrong, as described earlier.

That's not what I meant. What I meant is what html does observe_field
produce

Fred

> troubleshooting
> i'm looking at the log, and it seems to me that when i am at the
> initial page (and surrounding pages), i am in the desired controller.
> routing appears to be working as expected. however, when i test my
> drop-down menu, it appears as though 1) the :url => {:controller => ..
> details are being ignored; and 2) the parent "admin" controller only
> is getting processed rather than the supposed current "admin/assets"
> controller. it is as if the default, last route, " map.connect
> ':controller/:action/:id' " is being consulted rather than the :url in
> observe_field or anything else higher pertaining to admin and assets
> in routes. "assets" gets parsed as/demoted to an action rather than
> as part of the controller.

> <%= select_tag(:type, options_for_select(['[select
> one]','page','program','event']), :id => 'type_selection') %>

> <%= observe_field('type_selection',
> :frequency => 0.5,
> :update => 'page_selection',
> :url => {:controller => "admin/assets", :action => :set_pages},
> :with => "'type='+$('type_selection').value") %>

> <div id="page_selection">
> </div>

What is in the rendered html?

<script type="text/javascript">
//<![CDATA[
new Form.Element.Observer('type_selection', 0.5, function(element,
value) {new Ajax.Updater('page_selection', '/admin/assets/set_pages',
{asynchronous:true, evalScripts:true, parameters:'type='+$
('type_selection').value + '&authenticity_token=' +
encodeURIComponent('13b2be353ea3c336c4f8763a4dd2128383ec4d5f')})})
//]]>
</script>

so that much seems ok - your url option isn't getting ignored since
the javascript is trying to post to /admin/assets/set_pages (which
from your description sounds correct)

which controller is picking this up (and which one should be picking
it up) ?

Fred