def grouplist @currentgroupid=Group.find_by_group_name(params[:group_name]) @currentgroupfriends=GroupFriend.find_all_by_user_id_and_group_id(current_user.id,@currentgroupid) format.html {redirect_to :back} end Please check my controller and help me in solving my problem. I need to get groupid from the group_name from groups table and The list of friendid s for in the group created by the user which are available in the groupfriends table. My requirement Ex : select friends from groupfriends where userid=current_user.id and groupid=currentgroupid Please help me in writing the above query in the controller in rails. 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Ravi Dtv wrote:> > def grouplist > > > @currentgroupid=Group.find_by_group_name(params[:group_name]) > @currentgroupfriends=GroupFriend.find_all_by_user_id_and_group_id(current_user.id,@currentgroupid) > > format.html {redirect_to :back} > > endWhat does the log tell you is nil? current_user or @currentgroupid? a. You''re assuming that @currentgroupid will always have a value, which may be okay depending on the source of params[:group_name], which we don''t know. b. What is populating current_user? Is that the source of the nil error? -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Ar Chron wrote:> Ravi Dtv wrote: >> >> def grouplist >> >> >> @currentgroupid=Group.find_by_group_name(params[:group_name]) >> @currentgroupfriends=GroupFriend.find_all_by_user_id_and_group_id(current_user.id,@currentgroupid) >> >> format.html {redirect_to :back} >> >> end > > What does the log tell you is nil? current_user or @currentgroupid? > > a. You''re assuming that @currentgroupid will always have a value, which > may be okay depending on the source of params[:group_name], which we > don''t know. > > b. What is populating current_user? Is that the source of the nil > error?Thanks for your reply def showfriendslist @currentgroupid=Group.find_by_group_name(params[:group_name]).id @friendsingroup=GroupFriend.find_all_by_user_id_and_group_id(current_user.id, @currentgroupid) respond_to do |format| format.html {render :partial => "friendlist" } format.xml end This is my controller. My current_user is the current logged in user. I can get the groupid value into @currentgroupid. When I tried in console>> @currentgroupid=Group.find_by_group_name(''testinggroup'')=> #<Group id: 23, created_at: "2010-05-17 14:00:13", updated_at: "2010-05-17 14:00:13", user_id: 9, group_name: "testinggroup">>> @currentgroupid.id=> 23>> @friendsingroup=GroupFriend.find_all_by_user_id_and_group_id(''9'',@currentgroupid.id )=> [#<GroupFriend id: 15, created_at: "2010-05-19 04:36:21", updated_at: "2010-05-19 04:36:21", group_id: 23, friend_id: 4, user_id: 9>]>> @friendsingroup.id(irb):42: warning: Object#id will be deprecated; use Object#object_id => -618448038>> @friendsingroup.group_idNoMethodError: undefined method `group_id'' for #<Array:0xb64676b4> from (irb):43 In view I get the following error RuntimeError in UsersController#showfriendslist Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id Please help.. Im new to Ruby on Rails. Thank you. end -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 20 May 2010 16:35, Ravi Dtv <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Ar Chron wrote: >> Ravi Dtv wrote: >>> >>> def grouplist >>> >>> >>> @currentgroupid=Group.find_by_group_name(params[:group_name]) >>> @currentgroupfriends=GroupFriend.find_all_by_user_id_and_group_id(current_user.id,@currentgroupid) >>> >>> format.html {redirect_to :back} >>> >>> end >> >> What does the log tell you is nil? current_user or @currentgroupid? >> >> a. You''re assuming that @currentgroupid will always have a value, which >> may be okay depending on the source of params[:group_name], which we >> don''t know. >> >> b. What is populating current_user? Is that the source of the nil >> error? > > Thanks for your reply > > def showfriendslist > > @currentgroupid=Group.find_by_group_name(params[:group_name]).id > @friendsingroup=GroupFriend.find_all_by_user_id_and_group_id(current_user.id, > @currentgroupid) > > respond_to do |format| > format.html {render :partial => "friendlist" } > format.xml > > end > > This is my controller. My current_user is the current logged in user. > I can get the groupid value into @currentgroupid. > > When I tried in console > >>> @currentgroupid=Group.find_by_group_name(''testinggroup'') > => #<Group id: 23, created_at: "2010-05-17 14:00:13", updated_at: > "2010-05-17 14:00:13", user_id: 9, group_name: "testinggroup"> >>> @currentgroupid.id > => 23 >>> @friendsingroup=GroupFriend.find_all_by_user_id_and_group_id(''9'',@currentgroupid.id ) > => [#<GroupFriend id: 15, created_at: "2010-05-19 04:36:21", updated_at: > "2010-05-19 04:36:21", group_id: 23, friend_id: 4, user_id: 9>] >>> @friendsingroup.id > (irb):42: warning: Object#id will be deprecated; use Object#object_id > => -618448038 >>> @friendsingroup.group_id > NoMethodError: undefined method `group_id'' for #<Array:0xb64676b4> > from (irb):43That is because @friendsingroup is an array because you have used find_all_by_... The clue is in the error message. It says that class Array has not got a method group_id> > In view I get the following error > > RuntimeError in UsersController#showfriendslist > > Called id for nil, which would mistakenly be 4 -- if you really wanted > the id of nil, use object_idThat means that you have used something.id where id is nil. You still have not told us which line in the view is giving the error. Look at the error message and see which line it is, then look to see what id you are using on that line and most likely you will find the nil object. Then you just have to work out why it is nil. In order to avoid your view crashing you could test it for nil and put a message in the view instead of allowing it to crash. I also suggest also that you have a look at the Rails Guide on debugging. It will show you ways of breaking in to your code to inspect the variables. I use ruby-debug when I have this sort of problem. Colin> > > Please help.. Im new to Ruby on Rails. > > Thank you. > > > end > -- > 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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. > >-- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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.
Colin Law wrote:> On 20 May 2010 16:35, Ravi Dtv <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote: >>>> >> >> �format.xml >> "2010-05-17 14:00:13", user_id: 9, group_name: "testinggroup"> >> �from (irb):43 > That is because @friendsingroup is an array because you have used > find_all_by_... The clue is in the error message. It says that class > Array has not got a method group_id > >> >> In view I get the following error >> >> �RuntimeError in UsersController#showfriendslist >> >> Called id for nil, which would mistakenly be 4 -- if you really wanted >> the id of nil, use object_id > > That means that you have used something.id where id is nil. You still > have not told us which line in the view is giving the error. Look at > the error message and see which line it is, then look to see what id > you are using on that line and most likely you will find the nil > object. Then you just have to work out why it is nil. In order to > avoid your view crashing you could test it for nil and put a message > in the view instead of allowing it to crash. > > I also suggest also that you have a look at the Rails Guide on > debugging. It will show you ways of breaking in to your code to > inspect the variables. I use ruby-debug when I have this sort of > problem. > > ColinThanks Colin for the reply. When debugging i find currentgroupid is nill. How can I solve this. Possible solutions to pass values form partial to controller. <% @groups.each do |g| %> <p> <h5> <%= link_to_remote g.group_name, :update => "abc", :url => { :controller => "users" , :action => "showfriendslist" } %> <%= hidden_field_tag :group_name %> </h5> </p> <% end %> I can see my groupname displaying in my page, but when I click on my groupname link, Im not able to pass groupname to my controller. My controller: def showfriendslist @currentgroupid=Group.find_by_group_name(params[:group_name]).id #@friendsingroup=GroupFriend.find_all_by_user_id_and_group_id(current_user.id,@currentgroupid) respond_to do |format| format.html {render :partial => "friendlist" } format.xml end end Please help. Thank you. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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.
On 20 May 2010 17:19, Ravi Dtv <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:>...> > When debugging i find currentgroupid is nill. > > How can I solve this. Possible solutions to pass values form partial to > controller. > <% @groups.each do |g| %> > <p> > <h5> > <%= link_to_remote g.group_name, :update => "abc", :url => { > :controller => > "users" , :action => "showfriendslist" } %> > > <%= hidden_field_tag :group_name %> > </h5> > </p> > <% end %> > > I can see my groupname displaying in my page, but when I click on my > groupname link, Im not able to pass groupname to my controller.Using a hidden field does not work as you are not in a form. That is how to do it if you were submitting from a form. Instead just include the name in the url - something like <%= link_to_remote g.group_name, :update => "abc", :url => { :controller => "users" , :action => "showfriendslist", :group_name => g.group_name } %> Look at the html generated by this to check that it is being included correctly. Colin> > > My controller: > > def showfriendslist > > @currentgroupid=Group.find_by_group_name(params[:group_name]).id > > #@friendsingroup=GroupFriend.find_all_by_user_id_and_group_id(current_user.id,@currentgroupid) > > respond_to do |format| > format.html {render :partial => "friendlist" } > > format.xml > end-- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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.
Colin Law wrote:> On 20 May 2010 17:19, Ravi Dtv <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote: >> �"users" , :action => "showfriendslist" } %> >> >> � <%= hidden_field_tag :group_name �%> >> </h5> >> </p> >> <% end %> >> >> I can see my groupname displaying in my page, but when I click on my >> groupname link, Im not able to pass �groupname to my controller. > > Using a hidden field does not work as you are not in a form. That is > how to do it if you were submitting from a form. Instead just include > the name in the url - something like > <%= link_to_remote g.group_name, :update => "abc", :url => { > :controller => "users" , :action => "showfriendslist", :group_name => > g.group_name } %> > > Look at the html generated by this to check that it is being included > correctly. > > ColinThank you Colin I got the output. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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.
>>> >>> I can see my groupname displaying in my page, but when I click on my >>> groupname link, Im not able to pass �groupname to my controller. >> >> Using a hidden field does not work as you are not in a form. That is >> how to do it if you were submitting from a form. Instead just include >> the name in the url - something like >> <%= link_to_remote g.group_name, :update => "abc", :url => { >> :controller => "users" , :action => "showfriendslist", :group_name => >> g.group_name } %> >> >> Look at the html generated by this to check that it is being included >> correctly. >> >> Colin > > Thank you Colin > > I got the output.Can you please solve this error for me undefined method `each'' for 4:Fixnum -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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.
On 20 May 2010 23:37, Ravi Dtv <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> >... > Can you please solve this error for me > > undefined method `each'' for 4:FixnumI am sure you can work it out for yourself. Look at the line of code that generates the error, presumably there is a call to ''each'' there. The error says that you are trying to call each for the value 4 (which is of type Fixnum), presumably you expected it to be an Array. If you can''t see the problem by code inspection use ruby-debug to break in before that line and have a look at the variable you are calling each on. Colin -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.