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.


Reply via email to