I was surprised to see an array as second parameter for link_to and
would like to know the meaning of this construct. The website gives just
the somewhat thin explanation Clicking this new "Destroy Comment" link
will fire off a DELETE /articles/:article_id/comments/:id to our
CommentsController, which explains the effect of this statement, but
does not really explain the general mechanism behind this concept. I've
looked up the API documentation at http://api.rubyonrails.org/, which
gives for the second parameter of link_to the following choices (for the
case that the first parameter is a string):
A string containing the URL to link to, or
A hash containing various options for the URL
An array as parameter is not mentioned. It seems that the API
documentation is not complete here. Or did I look at the wrong place?
Please could someone explain this syntax to me, and also point out,
where I can find a more detailed description of the API?
I was surprised to see an array as second parameter for link_to and
would like to know the meaning of this construct. The website gives just
the somewhat thin explanation Clicking this new "Destroy Comment" link
will fire off a DELETE /articles/:article_id/comments/:id to our
CommentsController, which explains the effect of this statement, but
does not really explain the general mechanism behind this concept. I've
looked up the API documentation at http://api.rubyonrails.org/, which
gives for the second parameter of link_to the following choices (for the
case that the first parameter is a string):
A string containing the URL to link to, or
A hash containing various options for the URL
An array as parameter is not mentioned. It seems that the API
documentation is not complete here. Or did I look at the wrong place?
Please could someone explain this syntax to me, and also point out,
where I can find a more detailed description of the API?
What you are seeing is evidence that there is a nested route in play. Have a read of the Routing from the outside in Rails Guide, and note carefully what happens when you do this:
resources :articles do
resources :comments
end
What do the URL helpers look like to navigate to a single article's comments, or to an individual comment itself? Remember, there is no exposed /comments/123 URL possible once you do that scheme above.
Thanks for the explanation! I noticed your response only now, and it
would have at least partially answered my other question I had posted in
this forum too
I think I get the idea with nested routing now. What I still don't
understand is a *syntactic* issue: How to map this feature to the API
description. Looking at, for example,
I can not find a link_to with a signature which would allow for an array
as the second parameter. Is this an omission from the API description
(which I maybe should report to the maintainers), or did I just look at
the wrong place?
Thanks for the explanation! I noticed your response only now, and it
would have at least partially answered my other question I had posted in
this forum too
I think I get the idea with nested routing now. What I still don't
understand is a *syntactic* issue: How to map this feature to the API
description. Looking at, for example,
I can not find a link_to with a signature which would allow for an array
as the second parameter. Is this an omission from the API description
(which I maybe should report to the maintainers), or did I just look at
the wrong place?
Think of the array of elements as the first variable passed to the method. You can have three or more elements in that array, if that's how deep the nesting goes. But the array itself is the first variable, and in that limited way of looking at this, means that the documentation is correct to a point. I agree, it would be good if there was a signature showing this in the API docs. Good thing that Rails is open source -- you can get a commit out of this if you write it up and submit a pull request on GitHub!
Think of the array of elements as the first variable passed to the
method. You can have three or more elements in that array, if that's how
deep the nesting goes.
Well, this part I understand; it's just the usual parameter passing, and
of course you can pass any parameter (and, actually, it is the second
parameter, not the first, but this is a minor issue). But ...
But the array itself is the first variable, and
in that limited way of looking at this, means that the documentation is
correct to a point.
... I don't quite agree. Looking at the description of the possible
signatures, the documentation says: