Prev: How to pass data from one textbox to another one?
Next: Agile web Development with Rails section 9.3
From: Ravi Dtv on 19 May 2010 06:34 I am trying to pass login and group_name from partial to controller, but I dont get the values. I see the following error: RuntimeError in UsersController#addfriendtogroups Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id I tried in the console, where I get the result. But, in application I cannot pass the values. html page ----------------- <% @groups.each do |user| %> <%= render :partial => 'users/grouprow', :locals => {:user => user}%> <% end %> Partial ----------- <tr> <td class="people_profile"> <div class="clear_float_effect"> <div class="profile_block"> <p> <span title="Click to edit" id="edit_location"> <%= link_to user.group_name %> </span> <a href="#" class="short_description_text btn" id="edit_group_link"> <%= custom_button('Change') %> </a> </p> </div> <div> <% form_tag (:controller => "users" , :action => "addfriendtogroups") do %> Add friend: <%= text_field_with_auto_complete :user, 'login', {:size => 20}, {:tokens => ','} %> <%= submit_tag "Add to group", :class => "submit_input_button rounded_corner" %> <% end %> </div> </div> </td> </tr> Controller ---------------- def addfriendtogroups @f=User.find_by_login(params[:login]).id @g=Group.find_by_group_name(params[:group_name]).id @addfriend=GroupFriend.create(:user_id => current_user.id , :group_id => @g,:friend_id => @f) respond_to do |format| if @addfriend.save flash[:notice] = "Friend added to group successfully." format.html {redirect_to :back} end end end -- Posted via http://www.ruby-forum.com/.
From: Ravi Dtv on 19 May 2010 07:07 Gregor Panek wrote: > hi, > > pass your parameters to your partial like this: > <%=render :partial => 'users/grouprow' ,:collection => @groups%> > > > and when you want to call the parameters in your partial, you have to > call it by the name of your partial so it will be something like this: > > grouprow.id > grouprow.name > > > Greg Thanks Greg for the reply. I can display the values in my partial. My problem is I need to pass the values from my partial to the controller. I have a link, textbox and button in my partial. The link holds groupname. the textbox holds friendname. When I click Add button, the friend in the textbox should be added to the group and insert into the table. My def in controller Controller ---------------- def addfriendtogroups @f=User.find_by_login(params[:login]).id @g=Group.find_by_group_name(params[:group_name]).id @addfriend=GroupFriend.create(:user_id => current_user.id , :group_id => @g,:friend_id => @f) respond_to do |format| if @addfriend.save flash[:notice] = "Friend added to group successfully." format.html {redirect_to :back} end end end Please correct the def. Thanks. -- Posted via http://www.ruby-forum.com/.
From: Gregor Panek on 19 May 2010 08:03 yeah that's because you pass only one parameter to the hidden_field_tag so you got this: <input id="tags_list" name="tags_list" type="hidden" /> and your value is still nil, so you have to pass a second parameter to the hidden_field_tag to set the value: <%=hidden_field_tag :group_name, "yourgroupname"%> then you got this in html <input id="token" name="token" type="hidden" value="yourgroupname" /> now you should get with params[:group_name] the value that you set hope this works :) > Gregor Panek wrote: >> Hi, >> >> I think your problem is this line: >> @g=Group.find_by_group_name(params[:group_name]).id >> >> you want to pass the params :group_name which are nil because in your >> form you don't pass the :group_name to your controller: >> >> <% form_tag (:controller => "users" , :action => "addfriendtogroups") >> do %> >> >> Add friend: >> <%= text_field_with_auto_complete :user, 'login', {:size => >> 20}, {:tokens => ','} %> >> >> <%= submit_tag "Add to group", :class => >> "submit_input_button rounded_corner" %> >> <% end %> >> >> So pass your :group_name trough a hidden field to your controller >> >> hidden_field >> >> >> Am 19.05.2010 um 13:07 schrieb Ravi Dtv: > > > > > I tried with a hidden field > <% form_tag (:controller => "users" , :action => "addfriendtogroups") do > %> > > Add friend: > <%= text_field_with_auto_complete :user, 'login', {:size => 20}, > {:tokens => ','} %> > <%= hidden_field_tag :group_name %> > <%= submit_tag "Add to group", :class => > "submit_input_button rounded_corner" %> > <% end %> > > but it still a nil value. > > The error : > > > > RuntimeError in UsersController#addfriendtogroups > > Called id for nil, which would mistakenly be 4 -- if you really wanted > the id of nil, use object_id > > > Request > > Parameters: > > {"group_name"=>"", > "commit"=>"Add to group", > "authenticity_token"=>"MHB8Ys8vccsGwbgnsb9r5T68oqirPpW6YUscfDojZhY=", > "id"=>"testing", > "user"=>{"login"=>"santosh"}} > > where 'testing' is current user login, santosh is friend, and my > group_name is passing null value. > > -- > Posted via http://www.ruby-forum.com/. >
From: Ravi Dtv on 19 May 2010 07:42 Gregor Panek wrote: > Hi, > > I think your problem is this line: > @g=Group.find_by_group_name(params[:group_name]).id > > you want to pass the params :group_name which are nil because in your > form you don't pass the :group_name to your controller: > > <% form_tag (:controller => "users" , :action => "addfriendtogroups") > do %> > > Add friend: > <%= text_field_with_auto_complete :user, 'login', {:size => > 20}, {:tokens => ','} %> > > <%= submit_tag "Add to group", :class => > "submit_input_button rounded_corner" %> > <% end %> > > So pass your :group_name trough a hidden field to your controller > > hidden_field > > > Am 19.05.2010 um 13:07 schrieb Ravi Dtv: I tried with a hidden field <% form_tag (:controller => "users" , :action => "addfriendtogroups") do %> Add friend: <%= text_field_with_auto_complete :user, 'login', {:size => 20}, {:tokens => ','} %> <%= hidden_field_tag :group_name %> <%= submit_tag "Add to group", :class => "submit_input_button rounded_corner" %> <% end %> but it still a nil value. The error : RuntimeError in UsersController#addfriendtogroups Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id Request Parameters: {"group_name"=>"", "commit"=>"Add to group", "authenticity_token"=>"MHB8Ys8vccsGwbgnsb9r5T68oqirPpW6YUscfDojZhY=", "id"=>"testing", "user"=>{"login"=>"santosh"}} where 'testing' is current user login, santosh is friend, and my group_name is passing null value. -- Posted via http://www.ruby-forum.com/.
From: Gregor Panek on 19 May 2010 07:29 Hi, I think your problem is this line: @g=Group.find_by_group_name(params[:group_name]).id you want to pass the params :group_name which are nil because in your form you don't pass the :group_name to your controller: <% form_tag (:controller => "users" , :action => "addfriendtogroups") do %> Add friend: <%= text_field_with_auto_complete :user, 'login', {:size => 20}, {:tokens => ','} %> <%= submit_tag "Add to group", :class => "submit_input_button rounded_corner" %> <% end %> So pass your :group_name trough a hidden field to your controller hidden_field Am 19.05.2010 um 13:07 schrieb Ravi Dtv: > Gregor Panek wrote: >> hi, >> >> pass your parameters to your partial like this: >> <%=render :partial => 'users/grouprow' ,:collection => @groups%> >> >> >> and when you want to call the parameters in your partial, you have to >> call it by the name of your partial so it will be something like this: >> >> grouprow.id >> grouprow.name >> >> >> Greg > > Thanks Greg for the reply. > > I can display the values in my partial. > My problem is I need to pass the values from my partial to the > controller. > > I have a link, textbox and button in my partial. > The link holds groupname. the textbox holds friendname. > When I click Add button, the friend in the textbox should be added to > the group and insert into the table. > My def in controller > > Controller > ---------------- > > def addfriendtogroups > @f=User.find_by_login(params[:login]).id > @g=Group.find_by_group_name(params[:group_name]).id > > @addfriend=GroupFriend.create(:user_id => current_user.id , > :group_id => @g,:friend_id => @f) > > respond_to do |format| > > if @addfriend.save > > flash[:notice] = "Friend added to group successfully." > format.html {redirect_to :back} > > end > > end > end > > > Please correct the def. > > Thanks. > -- > Posted via http://www.ruby-forum.com/. >
|
Next
|
Last
Pages: 1 2 Prev: How to pass data from one textbox to another one? Next: Agile web Development with Rails section 9.3 |