I enabled this line in `route.rb`

match ':controller(/:action(/:id))(.:format)'

The HTML generated by `erb` is like this:

<form method="post" action="/client_workouts/find"
accept-charset="UTF-8">
<input type="hidden" value="✓" name="utf8">
<input type="hidden"
value="UFX2eg089kb5Al3qcJXJvJEFYwFnkXCj+dsmXTYLszE="
name="authenticity_token">
<input type="text" name="search_string" id="search_string">
<input type="submit" value="Search" name="commit">
</form>


In the controller, it looks like this:


def find
puts params[:search_string]
end



When I input some text in the text_field and click `Search`, the `find`
function can print out the value of that text.

This looks magic to me. Because in the `route`, the variable name is
`id`, but in the `controller`, this variable can be used by `params`. I
was wondering whether `id` is a magic variable that maps to `param`.


Does anyone have ideas about this. Thanks!

--
Posted via http://www.ruby-forum.com/.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Search Discussions

  • Walter Lee Davis at Nov 28, 2012 at 4:39 pm

    On Nov 28, 2012, at 10:46 AM, Hanfei S. wrote:

    I enabled this line in `route.rb`

    match ':controller(/:action(/:id))(.:format)'

    The HTML generated by `erb` is like this:

    <form method="post" action="/client_workouts/find"
    accept-charset="UTF-8">
    <input type="hidden" value="✓" name="utf8">
    <input type="hidden"
    value="UFX2eg089kb5Al3qcJXJvJEFYwFnkXCj+dsmXTYLszE="
    name="authenticity_token">
    <input type="text" name="search_string" id="search_string">
    <input type="submit" value="Search" name="commit">
    </form>


    In the controller, it looks like this:


    def find
    puts params[:search_string]
    end



    When I input some text in the text_field and click `Search`, the `find`
    function can print out the value of that text.

    This looks magic to me. Because in the `route`, the variable name is
    `id`, but in the `controller`, this variable can be used by `params`. I
    was wondering whether `id` is a magic variable that maps to `param`.


    Does anyone have ideas about this. Thanks!
    In the controller, every parameter that was gleaned from the routing process is available in the params hash. This includes anything that was named in the route that matched the request, and POST or querystring (GET) variables. The only parts of the request that are not in that hash are the session and cookie parameters.

    This gives you a one-stop-shop for any parameter you need, without having to specify in great detail precisely where you might have expected to find that parameter.

    Walter
    --
    Posted via http://www.ruby-forum.com/.

    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouprubyonrails-talk @
categoriesrubyonrails
postedNov 28, '12 at 3:46p
activeNov 28, '12 at 4:39p
posts2
users2
websiterubyonrails.org
irc#RubyOnRails

2 users in discussion

Hanfei S.: 1 post Walter Lee Davis: 1 post

People

Translate

site design / logo © 2022 Grokbase