Ruby on Rails
Wednesday, January 14, 2015
Hi all
I have a relation @user.tracks,
track(user_id:integer, point:integer, track_name:string)
I want to reorganizing all user's track.point from integer to range.
Another words,
from
array = [1,4,10,14,22]
do
array = [0..1, 2..4, 5..10, 11..14, 15..22]
My code is:
@points = @user.tracks.pluck(:point).unshift(-1)
@ranges = @points.each_cons(2).map{|a,b| a+1..b} #=>[0..1, 2..4, 5..10, 11..14, 15..22]
@points.shift
Now i want to save a range for every user.tracks, but don't know how?
First think: create a model track_range(track_id:integer, t_start:integer, t_end:integer) through has_one relation with track model. I see that @track.point = @track.track_range.t_end, but how could i set up and save track_range.t_start?
Second think(more acceptable), create a new column for track (pre_point:integer). But question the same: how to save a range from @ranges for each tracks?
Thanks for answers
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/959eaba2-0c3b-466c-80c1-4029c58a0146%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment