On Tue, Nov 20, 2012 at 8:45 PM, Werner Laude < webagentur.la...@googlemail.com> wrote:
> here...is the essential > > def edit > @booking = Booking.new > > @project = Project.find(params[:id]) > @partprojects = Project.find_all_by_parent_id(@project.id) > > @bookings = Booking.zwischen(start, ende) > > @main_hours = main_hours_sum(@project.id) > @part_hours = part_hours_sum(@partprojects.id) > @all_hours = @main_hours + @part_hours > end > > form > <%= simple_form_for @booking, :url => booking_path, :remote => true, > :method => :put do %> > <% @bookings.each do |booking|%> > > <%= fields_for "booking[]", booking do |f|%> > <%= f.text_field :hour, :class => 'submittable' %> > <%= hidden_field_tag "booking_ids[]", booking.id %> > <% end %> > > <% end %> > > coffee > $(".submittable").live "change", -> > $(this).parents("form:first").submit() > > > > def update > if params[:booking_ids] > params[:booking_ids].each do > Booking.update(params[:booking].keys, > params[:booking].values).reject { |p| p.errors.empty? } > end > end > > respond_to do |format| > format.js{ > @project = Project.find(params[:id]) > @main_hours = main_hours_sum(@project.id) > > } > end > end > Ok. sorry but now I'm confused. Where are you using @main_hours, @part_hours and @all_hours? I need the part of the template that uses these variables. > > > > > > > Am 20.11.2012 um 13:22 schrieb Jim Ruther Nill <jvn...@gmail.com>: > > > > > On Tue, Nov 20, 2012 at 7:48 PM, Werner > <webagentur.la...@googlemail.com>wrote: > >> o.k. >> Now it is like that: >> >> def update >> >> if params[:booking_ids] >> params[:booking_ids].each do >> Booking.update(params[:booking].keys, >> params[:booking].values).reject { |p| p.errors.empty? } >> end >> end >> >> respond_to do |format| >> format.js{ >> >> @project = Project.find(params[:id]) >> @main_hours = main_hours_sum(@project.id) >> } >> end >> end >> >> def main_hours_sum(id) >> hours ||= Booking.where(project_id: id).sum("hour") >> end >> >> >> update.js.erb >> >> alert('<%= @main_hours %>') >> >> The alert pops up and shows the correct amount of hours.. >> Thanks so far.....but I dont have an idea how to update/reset the >> @main_hours on the edit page where it is shown. As I dont leave this page, >> no request - no update. >> May be my understanding of this process is not enough yet. >> > > If you can show us the code of your edit template, I can help you with the > javascript > to update the total number of hours. > > >> >> Greetings >> >> >> >> Am Dienstag, 20. November 2012 11:04:53 UTC+1 schrieb jim: >>> >>> >>> >>> >>> On Tue, Nov 20, 2012 at 5:46 PM, Werner <webagent...@googlemail.**com>wrote: >>> >>>> Sure.. >>>> >>>> def edit >>>> @booking = Booking.new >>>> @project = Project.find(params[:id]) >>>> @main_hours = main_hours_sum(@project.id) >>>> ... >>>> end >>>> >>>> def main_hours_sum(id) >>>> Booking.where(project_id: id).sum("hour") >>>> end >>>> >>>> def update >>>> respond_to do |format| >>>> >>>> format.js >>>> end >>>> end >>>> >>>> update.js.erb >>>> <% if params[:booking_ids] %> >>>> <% params[:booking_ids].each do %> >>>> <% Booking.update(params[:**booking].keys, >>>> params[:booking].values).**reject { |p| p.errors.empty? } %> >>>> <% end %> >>>> >>>> <%end%> >>>> >>> >>> You need to move the logic in update.js.erb to the update action. I was >>> looking for >>> the edit template. I'd like to see how you use the @main_hours >>> variable. What I'm thinking >>> is this on this update action and erb. >>> >>> def update >>> @project = ... #fetch project here >>> >>> # move your logic in the view here >>> # there's something missing here :D >>> if params[:booking_ids] >>> params[:booking_ids].each do >>> Booking.update(params[:**booking].keys, params[:booking].values).* >>> *reject { |p| p.errors.empty? } >>> end >>> end >>> >>> respond_to do |format| >>> format.html >>> format.js { @main_hours = main_hours_sum(@project.id) } >>> end >>> end >>> >>> # update.js.erb >>> # use @main_hours to update whatever you need to update on the view >>> >>> alert('<%= @main_hours %>') >>> >>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> Am Dienstag, 20. November 2012 09:59:58 UTC+1 schrieb jim: >>>>> >>>>> >>>>> Hi! >>>>> >>>>> On Tue, Nov 20, 2012 at 4:53 PM, Werner >>>>> <webagent...@googlemail.**com>wrote: >>>>> >>>>>> Hi jim >>>>>> >>>>>> As I am using remote: true I created a update.js.erb and a respond_to >>>>>> do |format| block. >>>>>> Copied the format html ocde into the update.js.erb and the update >>>>>> process is still working.. so far so good. >>>>>> >>>>>> But it is unclear to me how to update the >>>>>> Model.where(model_id: id).sum("attribute") query which is in edit >>>>>> action. >>>>>> >>>>> >>>>> Can you paste in part of the edit template where you use the result of >>>>> this query? >>>>> >>>>> >>>>>> Using html, after update the edit action is called and the query is >>>>>> refreshed. How to get this working with js? >>>>>> Something like a submit or refreshing the edit action..? >>>>>> >>>>> >>>>> Can you also paste your edit and update actions so we can work on the >>>>> code >>>>> level. >>>>> >>>>> >>>>>> >>>>>> Thanks for sharing.. >>>>> >>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> Am Montag, 19. November 2012 15:30:42 UTC+1 schrieb jim: >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Mon, Nov 19, 2012 at 10:25 PM, Werner <webagent...@googlemail.** >>>>>>> com> wrote: >>>>>>> >>>>>>>> On my edit page I can update values using ajax. >>>>>>>> >>>>>>>> In my edit action I also have something like: Model.where(model_id: >>>>>>>> id).sum("attribute") >>>>>>>> As the edit action is not executed anymore, I dont get a proper >>>>>>>> result after I add some new value, have to reload the page. >>>>>>>> >>>>>>>> How is the best way to actualize the sum after edit.. ? >>>>>>>> >>>>>>> >>>>>>> Are you updating the values by calling $.ajax or just passing in >>>>>>> remote: true on your forms? >>>>>>> >>>>>>> If you use $.ajax, I suggest that you pass in the sum as json which >>>>>>> $.ajax can process. If you're >>>>>>> using remote: true, you can create an update.js.erb or >>>>>>> update.js.haml which will be rendered >>>>>>> after you update. >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> Thanks >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> 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 rubyonra...@googlegroups.**com >>>>>>>> . >>>>>>>> To unsubscribe from this group, send email to rubyonrails-ta...@** >>>>>>>> googlegroups****.com. >>>>>>>> >>>>>>>> To view this discussion on the web visit >>>>>>>> https://groups.google.com/d/**ms****g/rubyonrails-talk/-/** >>>>>>>> RHAW38e5g****OwJ<https://groups.google.com/d/msg/rubyonrails-talk/-/RHAW38e5gOwJ> >>>>>>>> . >>>>>>>> For more options, visit https://groups.google.com/**grou**** >>>>>>>> ps/opt_out <https://groups.google.com/groups/opt_out>. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> ------------------------------******------------------------------** >>>>>>> ****- >>>>>>> visit my blog at http://jimlabs.heroku.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 rubyonra...@googlegroups.**com. >>>>>> To unsubscribe from this group, send email to rubyonrails-ta...@** >>>>>> googlegroups**.com. >>>>>> To view this discussion on the web visit https://groups.google.com/d/ >>>>>> **ms**g/rubyonrails-talk/-/**GktAGfGYQ**m4J<https://groups.google.com/d/msg/rubyonrails-talk/-/GktAGfGYQm4J> >>>>>> . >>>>>> >>>>>> For more options, visit >>>>>> https://groups.google.com/**grou**ps/opt_out<https://groups.google.com/groups/opt_out> >>>>>> . >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> ------------------------------****------------------------------****- >>>>> visit my blog at http://jimlabs.heroku.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 rubyonra...@googlegroups.**com. >>>> To unsubscribe from this group, send email to rubyonrails-ta...@** >>>> googlegroups.com. >>>> To view this discussion on the web visit https://groups.google.com/d/** >>>> msg/rubyonrails-talk/-/**aGQY2mvKhoUJ<https://groups.google.com/d/msg/rubyonrails-talk/-/aGQY2mvKhoUJ> >>>> . >>>> >>>> For more options, visit >>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>>> . >>>> >>>> >>>> >>> >>> >>> >>> -- >>> ------------------------------**------------------------------**- >>> visit my blog at http://jimlabs.heroku.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@googlegroups.com. >> To unsubscribe from this group, send email to >> rubyonrails-talk+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msg/rubyonrails-talk/-/Uww8jzoTzJcJ. >> >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > > > -- > ------------------------------------------------------------- > visit my blog at http://jimlabs.heroku.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@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > > > Werner Laude > webagentur.la...@gmail.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@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- ------------------------------------------------------------- visit my blog at http://jimlabs.heroku.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@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.