Hi everyone, I am having a problem rendering js, this is my code: in the main view index.html.erb I have <div id="poll"> <%= render(:partial => ''poll'')%> </div> In the partial _poll.html.erb I have: <%= form_tag(:action => "update_all", :remote => true) do %> <% for @poll in @polls %> <p> <%= fields_for @poll do |f| %> <%= f.check_box (:selected, "index" => @poll.id) %> <%= @poll.name %> <%= @poll.votes %> <% end %> </p> <% end %> <p> <%= submit_tag "Update" %> </p> <% end %> The method in the controller looks like this: def update_all params[:poll].each do |id, attr| poll = Poll.find(id) if (attr[''selected''] == "1") poll.votes = poll.votes + 1 poll.save end end respond_to do |format| format.html { redirect_to(stipso_path) } format.js end end I have a file called update_all.js.rjs which I think it is supposed to be called from the controller but it is ignored because html is processed instead. I basically want to replace the poll content using AJAX. Here is the log msg from the rails s console: Started POST "/foo/update_all?remote=true" for 127.0.0.1 at Wed Jun 08 21:09:13 +0100 2011 Processing by FooController#update_all as HTML What am I doing wrong? -- 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.
I think your form is not setting remote correctly. If it was submitting correctly you should not see ?remote=true. form tag takes 2 parameters url_for_options and options. If you don''t put the {} around the first set of options it will assume they are all url_for_options form_tag(url_for_options = {}, options = {}, *parameters_for_url, &block) Basically I think you need to change your form tag to look like this <%= form_tag({:action => "update_all"}, :remote => true) do %> On Jun 8, 1:18 pm, johnlucas <gianluca.trombe...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Hi everyone, > > I am having a problem rendering js, this is my code: > > in the main view index.html.erb I have > > <div id="poll"> > <%= render(:partial => ''poll'')%> > </div> > > In the partial _poll.html.erb I have: > <%= form_tag(:action => "update_all", :remote => true) do %> > > <% for @poll in @polls %> > <p> > <%= fields_for @poll do |f| %> > <%= f.check_box (:selected, "index" => @poll.id) %> > <%= @poll.name %> > <%= @poll.votes %> > <% end %> > </p> > <% end %> > <p> > <%= submit_tag "Update" %> > </p> > <% end %> > > The method in the controller looks like this: > > def update_all > params[:poll].each do |id, attr| > > poll = Poll.find(id) > > if (attr[''selected''] == "1") > > poll.votes = poll.votes + 1 > poll.save > end > end > > respond_to do |format| > format.html { redirect_to(stipso_path) } > format.js > end > end > > I have a file called update_all.js.rjs which I think it is supposed to > be called from the controller but it is ignored because html is > processed instead. > > I basically want to replace the poll content using AJAX. > > Here is the log msg from the rails s console: > > Started POST "/foo/update_all?remote=true" for 127.0.0.1 at Wed Jun 08 > 21:09:13 +0100 2011 > Processing by FooController#update_all as HTML > > What am I doing wrong?-- 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.
It works! Thanks! stupid brackets... :-) On Jun 9, 12:20 am, pipplo <joe.kos...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I think your form is not setting remote correctly. > > If it was submitting correctly you should not see ?remote=true. > > form tag takes 2 parameters url_for_options and options. If you don''t > put the {} around the first set of options it will assume they are all > url_for_options > > form_tag(url_for_options = {}, options = {}, *parameters_for_url, > &block) > > Basically I think you need to change your form tag to look like this > > <%= form_tag({:action => "update_all"}, :remote => true) do %> > > On Jun 8, 1:18 pm, johnlucas <gianluca.trombe...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > > > > > > Hi everyone, > > > I am having a problem rendering js, this is my code: > > > in the main view index.html.erb I have > > > <div id="poll"> > > <%= render(:partial => ''poll'')%> > > </div> > > > In the partial _poll.html.erb I have: > > <%= form_tag(:action => "update_all", :remote => true) do %> > > > <% for @poll in @polls %> > > <p> > > <%= fields_for @poll do |f| %> > > <%= f.check_box (:selected, "index" => @poll.id) %> > > <%= @poll.name %> > > <%= @poll.votes %> > > <% end %> > > </p> > > <% end %> > > <p> > > <%= submit_tag "Update" %> > > </p> > > <% end %> > > > The method in the controller looks like this: > > > def update_all > > params[:poll].each do |id, attr| > > > poll = Poll.find(id) > > > if (attr[''selected''] == "1") > > > poll.votes = poll.votes + 1 > > poll.save > > end > > end > > > respond_to do |format| > > format.html { redirect_to(stipso_path) } > > format.js > > end > > end > > > I have a file called update_all.js.rjs which I think it is supposed to > > be called from the controller but it is ignored because html is > > processed instead. > > > I basically want to replace the poll content using AJAX. > > > Here is the log msg from the rails s console: > > > Started POST "/foo/update_all?remote=true" for 127.0.0.1 at Wed Jun 08 > > 21:09:13 +0100 2011 > > Processing by FooController#update_all as HTML > > > What am I doing wrong?-- 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.