Hi
i am function in my controller like
def user_list
.........
end
and i need to call this function in link_to method. and i written like
this
<%=link_to ''User_list'',student,:method=>:get%>
when i click the link action by default going to show method...wats a
problem.
i mentioned in routes.rb as
map.resources :students, :collection => {:department => :get,:user_list
=>:get}
Is any problem in routes.rb
please help..................
--
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Greetings! If you run the rake task: "rake routes", you''ll be given a list of all the available routes. When you use collection, the original resource is also included in the named rout. For example, you would call: <%= link_to ''User_list'', user_list_students_path %> This ''should'' generate the correct URL. Use that rake routes command to confirm this. Brian is right though, you seldom have to resort to custom methods. Your index page for students should be used to list your students. Hope that helps! ~Dustin Tigner On Jul 31, 9:19 am, babu nair <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> Hi > i am function in my controller like > def user_list > ......... > end > > and i need to call this function in link_to method. and i written like > this > <%=link_to ''User_list'',student,:method=>:get%> > > when i click the link action by default going to show method...wats a > problem. > i mentioned in routes.rb as > map.resources :students, :collection => {:department => :get,:user_list > =>:get} > > Is any problem in routes.rb > > please help.................. > -- > Posted viahttp://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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
If you just pass student as the 2nd parameter in your link it will generate the link to student/show. You need to sit down and read through the docs on routing, methods, collections, etc, and you might want to look at "The Rails Way" book''s section on routing and REST. Your route is totally wrong. You can''t map controllers and actions using map.resources, and a collection is for many students, not for one student. You want member. You should have a method called def departments @student= Student.find params[:id] @departments = @student.departments end map.resources :students, :member = > [:departments => :get] Then your link would be <%=link_to "Departments", departments_student_url(@student) %> which generates /students/25/departments If that looks funny to you it''s cos you''re breaking the REST conventions. You should have a deparments controller nested below students, with its own create (adding a department to a student), show, and delete (removing a department) actions. map.resources :students do |s| s.resources :departments end The departments controller looks at the student_id in the params (cos that''s where the user id is found with a nested route. So in the departments controller, the index action would be def index @user = User.find params[:student_id] @departments = @user.departments end This time the link would be def departments @user = User.find params[:id] @departments = @user.departments end <%=link_to "Departments", student_departments_url(@student) %> which generates /students/25/departments Hope that helps. You should either embrace RESTful Rails design concepts, or just stop using map.resources and go back to map.connect :controller/:action/:id and do your link_to stuff that way like in "classic" Rails. On Thu, Jul 31, 2008 at 10:19 AM, babu nair < rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> > Hi > i am function in my controller like > def user_list > ......... > end > > and i need to call this function in link_to method. and i written like > this > <%=link_to ''User_list'',student,:method=>:get%> > > when i click the link action by default going to show method...wats a > problem. > i mentioned in routes.rb as > map.resources :students, :collection => {:department => :get,:user_list > =>:get} > > Is any problem in routes.rb > > please help.................. > -- > 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi i given in routes.rb as u mentioned like
map.resources :students, :member => [:departments => :get]
and rhtml i given link
<td><%=link_to "Departments",
departments_student_url(student)
%></td>
in students controller
def departments
@student= Student.find params[:id]
# @departments = @student.departments
end
But it showing error like
undefined method `departments_student_url'' for
#<ActionView::Base:0xb73d2f18>
what''s a problem?
please sujjest any good link to study RESTful architecture in detail and
also in depth?
with regards
babu nair
--
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Your route should be a hash, not an array. I may have made a typo in my
example. You should use:
map.resources :students, :member => {:departments => :get} #
curly-braces instead of square braces.
Really sorry about that.
Use the command ''rake routes'' to see a list of all the
available routes that
are generated. The route names are listed there so you should see one that
says departments_user (then you just need to add _url or _path when you
make the method call in link_to.
On Thu, Jul 31, 2008 at 11:47 PM, babu nair <
rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:
>
> Hi i given in routes.rb as u mentioned like
>
> map.resources :students, :member => [:departments => :get]
>
> and rhtml i given link
>
> <td><%=link_to "Departments",
departments_student_url(student)
> %></td>
>
> in students controller
>
> def departments
> @student= Student.find params[:id]
> # @departments = @student.departments
> end
>
> But it showing error like
>
> undefined method `departments_student_url'' for
> #<ActionView::Base:0xb73d2f18>
>
> what''s a problem?
>
> please sujjest any good link to study RESTful architecture in detail and
> also in depth?
>
> with regards
> babu nair
>
>
> --
> 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---