Forum: Ruby on Rails Brand newbie question relating to link_to

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.
David S. (Guest)
on 2006-03-28 05:51
(Received via mailing list)
I recently dived into Rails and am having trouble with the link_to
method.
I'd like to pass some parameters to the action being called and am not
sure
how to do it.   Essentially, I want to hyperlink a total count of bugs
queried from the database to a method that will return the bug numbers
when
clicked on.  I have a method, bug_total, that returns the total number
to
display in the view.  I have another method, total_bugs, that will
return
the bugzilla url with all the bugid's for that particular build when
clicked.

Below is what I have in my view.  I'd like to pass the
:action=>"total_bugs"
some parameters(build_number, developer_name, product_name) based on the
current build.  I've tried many ways and haven't been successfull, yet.
Any
help is greatly appreciated.  Thanks!


<%
   for build in @bugDashboard
 %>
<span class="tabledata">
          <%= link_to build.bug_total, {:controller => "dashboard",
                                        :action => "total_bugs"} %>
</span>

.....
Jon (Guest)
on 2006-03-28 06:02
> <%
>    for build in @bugDashboard
>  %>
> <span class="tabledata">
>           <%= link_to build.bug_total, {:controller => "dashboard",
>                                         :action => "total_bugs"} %>
> </span>
>
> .....

<%= link_to (build.bug_total), :controller ....... %>

that should work...
François B. (Guest)
on 2006-03-29 01:56
(Received via mailing list)
2006/3/27, David S. <removed_email_address@domain.invalid>:
> <%
>    for build in @bugDashboard
>  %>
> <span class="tabledata">
>           <%= link_to build.bug_total, {:controller => "dashboard",
>                                         :action =>
> "total_bugs"} %>
> </span>

Hmm, have you tried this ?

build_number, developer_name, product_name
<%= link_to build.bug_total, :controller => "dashboard", :action =>
"total_bugs", :build_number => '123', :developer_name => 'francois',
:product_name => 'rails' %>

#link_to automatically makes any leftover parameters query parameters:

<a
href="/dashboard/total_bugs?build_number=123&developer_name=francois&product_name=rails">1</a>

In the action, you can access the parameters using the params Hash:

def total_bugs
  params[:product_name] # => "rails"
  params[:build_number] # => "123"
  params[:developer_name] # => "francois"
end

NOTE:  All parameters are strings in the params Hash.

When you are ready to explore routes, you can build a URL like this
instead:

/dashboard/total_bugs/rails/francois/123

map.connect
'/dashboard/total_bugs/:product_name/:developer_name/:build_number',
  :controller => "dashboard", :action => "total_bugs"

which would give you the exact same params Hash as above.

Hope that helps !
dsliwa (Guest)
on 2006-03-29 04:16
(Received via mailing list)
Thank you Francois!  That worked great.  I haven't tried the route way,
yet,
but will when I get this thing up and running.  You help is greatly
appreciated!
This topic is locked and can not be replied to.