Forum: Ruby on Rails help understanding routes

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
glenn (Guest)
on 2007-02-10 13:32
(Received via mailing list)
Hi

Trying to get my head around routes, particularly RESTful routes, and
mapping to controllers, and the magic urls that go with them.

I have a model called course_materials which acts_as_tree which also
belongs_to a model called course.

I have this in routes.rb

map.resources :courses do |course|
  course.resources :course_materials do |course_material|
      course_materials.resources :course_materials
   end
end

in  views/course_materials/new.rhtml I have a form with:
url => course_material_path

This generates the html I would imagine it should. e.g.

action="./courses/10/course_materials/67/course_materials"

However, when the form is submitted, instead of the controller maping
this to 'create' it maps it to 'update'.

Could someone help me grasp why this isnt mapping to create, and what
I might need to do so? is what Im trying to do even possible with
restful routes?

thanks

Glenn
Russell N. (Guest)
on 2007-02-10 16:37
(Received via mailing list)
Are you _really_ trying to nest a resource [:course_materials] within
itself?? I think [and I'm just guessing here] the confusion is arising
from
just that. When you've got an id with that first :course_materials,
Rails is
going to send that as an update [since it has an id and therefore a
record
already]. I dunno if it's possible or not to use acts_as_tree with
RESTful
routes but it seems like the problem lies in it.

RSL
glenn (Guest)
on 2007-02-10 17:08
(Received via mailing list)
On Feb 11, 1:36 am, "Russell N." <removed_email_address@domain.invalid> wrote:
> Are you _really_ trying to nest a resource [:course_materials] within
> itself?? I think [and I'm just guessing here] the confusion is arising from
> just that. When you've got an id with that first :course_materials, Rails is
> going to send that as an update [since it has an id and therefore a record
> already]. I dunno if it's possible or not to use acts_as_tree with RESTful
> routes but it seems like the problem lies in it.
>
hmm... yep - i am trying that - only because it _should_ be possible.
and it kinda works - more than i dared hope...
it seems that with say:

/course/5/course_material/1/course_material/2

1 gets assigned to :course_material_id (which I can use for the
parent)
and 2 gets assigned to the id.

the first problem lies matching to correct action - it seems  that
sometimes the left hand end gets used to match, and sometimes the
right

the second problem lies in being able to predict control what url
helpers will do and are available

the 3rd problem exists in that - you cant recurse - afaict - the
extent to which you're prepared to nest, is the extent to which you
can get some results

i've got around it by doing map.control for somethings and letting
rest works where it seems to - its a bit flakey possibly, but works to
a point - but inspite of getting around it - id still like to
understand either how to make it work or why it doesnt

thanks russell
glenn
Russell N. (Guest)
on 2007-09-26 01:10
(Received via mailing list)
If it works... Work it!

RSL
This topic is locked and can not be replied to.