In my controller I have found all the movies like this @budgets=Budget.find(:all).to_json Now in the view file what i want to do is something like this <script> var datasets = { "usa": { label: "USA", data: [[1988, 483994], [1989, 479060], [1990, 457648], [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], [1995, 357382], [1996, 337946], [1997, 336185], [1998, 328611], [1999, 329421], [2000, 342172], [2001, 344932], [2002, 387303], [2003, 440813], [2004, 480451], [2005, 504638], [2006, 528692]] }, "russia": { label: "Russia", data: [[1988, 218000], [1989, 203000], [1990, 171000], [1992, 42500], [1993, 37600], [1994, 36600], [1995, 21700], [1996, 19200], [1997, 21300], [1998, 13600], [1999, 14000], [2000, 19100], [2001, 21300], [2002, 23600], [2003, 25100], [2004, 26100], [2005, 31100], [2006, 34700]] } } </script> How to do this as i have to plot this data.
On Tuesday 05 May 2009, mrbless wrote:> In my controller I have found all the movies like this > @budgets=Budget.find(:all).to_jsonIf it''s ok to issue a separate request for the data, have a look at http://github.com/mschuerig/ruby_template_handler One way or another, you''ll have to do the conversion to the specific format you need yourself. Michael> Now in the view file what i want to do is something like this > <script> > var datasets = { > "usa": { > label: "USA", > data: [[1988, 483994], [1989, 479060], [1990, 457648], > [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], > [1995, 357382], [1996, 337946], [1997, 336185], [1998, 328611], > [1999, 329421], [2000, 342172], [2001, 344932], [2002, 387303], > [2003, 440813], [2004, 480451], [2005, 504638], [2006, 528692]] > }, > "russia": { > label: "Russia", > data: [[1988, 218000], [1989, 203000], [1990, 171000], > [1992, 42500], [1993, 37600], [1994, 36600], [1995, 21700], [1996, > 19200], [1997, 21300], [1998, 13600], [1999, 14000], [2000, 19100], > [2001, 21300], [2002, 23600], [2003, 25100], [2004, 26100], [2005, > 31100], [2006, 34700]] > } > } > </script>-- Michael Schuerig mailto:michael-q5aiKMLteq4b1SvskN2V4Q@public.gmane.org http://www.schuerig.de/michael/
mrbless wrote:> In my controller I have found all the movies like this > @budgets=Budget.find(:all).to_json > > Now in the view file what i want to do is something like this > <script> > var datasets = { > "usa": { > label: "USA", > data: [[1988, 483994], [1989, 479060], [1990, 457648], > [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], [1995, > 357382], [1996, 337946], [1997, 336185], [1998, 328611], [1999, > 329421], [2000, 342172], [2001, 344932], [2002, 387303], [2003, > 440813], [2004, 480451], [2005, 504638], [2006, 528692]] > }, > "russia": { > label: "Russia", > data: [[1988, 218000], [1989, 203000], [1990, 171000], > [1992, 42500], [1993, 37600], [1994, 36600], [1995, 21700], [1996, > 19200], [1997, 21300], [1998, 13600], [1999, 14000], [2000, 19100], > [2001, 21300], [2002, 23600], [2003, 25100], [2004, 26100], [2005, > 31100], [2006, 34700]] > } > } > </script> > >What is the output if you write: p @bugets in the controller? -- Posted via http://www.ruby-forum.com/.
=> [#<Budget id: 1, country: "usa", year: "2000", amount: 15000>, #<Budget id: 2 , country: "usa", year: "2001", amount: 1564>, #<Budget id: 3, country: "usa", y ear: "2002", amount: 6463>, #<Budget id: 4, country: "usa", year: "2003", amount : 150002>, #<Budget id: 5, country: "usa", year: "2004", amount: 5000>, #<Budget id: 6, country: "usa", year: "2005", amount: 4150>, #<Budget id: 7, country: "u sa", year: "2006", amount: 100>, #<Budget id: 8, country: "germany", year: "2000 ", amount: 1000>, #<Budget id: 9, country: "germany", year: "2001", amount: 1526 4>, #<Budget id: 10, country: "germany", year: "2002", amount: 64633>, #<Budget id: 11, country: "germany", year: "2003", amount: 1502>, #<Budget id: 12, countr y: "germany", year: "2004", amount: 500>, #<Budget id: 13, country: "germany", y ear: "2005", amount: 450>, #<Budget id: 14, country: "germany", year: "2006", am ount: 10>, #<Budget id: 15, country: "britian", year: "2000", amount: 150>, #<Bu dget id: 16, country: "britian", year: "2001", amount: 15064>, #<Budget id: 17, country: "britian", year: "2002", amount: 663>, #<Budget id: 18, country: "briti an", year: "2003", amount: 2002>, #<Budget id: 19, country: "britian", year: "20 04", amount: 50000>, #<Budget id: 20, country: "britian", year: "2005", amount: 4150>, #<Budget id: 21, country: "britian", year: "2006", amount: 1000>] On May 5, 4:49 pm, 7stud -- <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> mrbless wrote: > > In my controller I have found all the movies like this > > @budgets=Budget.find(:all).to_json > > > Now in the view file what i want to do is something like this > > <script> > > var datasets = { > > "usa": { > > label: "USA", > > data: [[1988, 483994], [1989, 479060], [1990, 457648], > > [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], [1995, > > 357382], [1996, 337946], [1997, 336185], [1998, 328611], [1999, > > 329421], [2000, 342172], [2001, 344932], [2002, 387303], [2003, > > 440813], [2004, 480451], [2005, 504638], [2006, 528692]] > > }, > > "russia": { > > label: "Russia", > > data: [[1988, 218000], [1989, 203000], [1990, 171000], > > [1992, 42500], [1993, 37600], [1994, 36600], [1995, 21700], [1996, > > 19200], [1997, 21300], [1998, 13600], [1999, 14000], [2000, 19100], > > [2001, 21300], [2002, 23600], [2003, 25100], [2004, 26100], [2005, > > 31100], [2006, 34700]] > > } > > } > > </script> > > What is the output if you write: > > p @bugets > > in the controller? > > -- > Posted viahttp://www.ruby-forum.com/.
nirvana wrote:> => [#<Budget id: 1, country: "usa", year: "2000", amount: 15000>, > #<Budget id: 2 > , country: "usa", year: "2001", amount: 1564>, #<Budget id: 3, > country: "usa", y > ear: "2002", amount: 6463>, #<Budget id: 4, country: "usa", year: > "2003", amount > : 150002>, #<Budget id: 5, country: "usa", year: "2004", amount: > 5000>, #<Budget > id: 6, country: "usa", year: "2005", amount: 4150>, #<Budget id: 7, > country: "u > sa", year: "2006", amount: 100>, #<Budget id: 8, country: "germany", > year: "2000 > ", amount: 1000>, #<Budget id: 9, country: "germany", year: "2001", > amount: 1526 > 4>, #<Budget id: 10, country: "germany", year: "2002", amount: 64633>, > #<Budget > id: 11, country: "germany", year: "2003", amount: 1502>, #<Budget id: > 12, countr > y: "germany", year: "2004", amount: 500>, #<Budget id: 13, country: > "germany", y > ear: "2005", amount: 450>, #<Budget id: 14, country: "germany", year: > "2006", am > ount: 10>, #<Budget id: 15, country: "britian", year: "2000", amount: > 150>, #<Bu > dget id: 16, country: "britian", year: "2001", amount: 15064>, > #<Budget id: 17, > country: "britian", year: "2002", amount: 663>, #<Budget id: 18, > country: "briti > an", year: "2003", amount: 2002>, #<Budget id: 19, country: "britian", > year: "20 > 04", amount: 50000>, #<Budget id: 20, country: "britian", year: > "2005", amount: > 4150>, #<Budget id: 21, country: "britian", year: "2006", amount: > 1000>]require ''pp'' #pretty printer class Budget attr_reader :country, :year, :amount def initialize(c, y, a) @country, @year, @amount = c, y, a end end arr = [ Budget.new("usa", "1989", 15000), Budget.new("usa", "1964", 20000), Budget.new("russia", "1999", 14000) ] pp arr --output:-- [#<Budget:0x8744c @amount=15000, @country="usa", @year="1989">, #<Budget:0x873fc @amount=20000, @country="usa", @year="1964">, #<Budget:0x873ac @amount=14000, @country="russia", @year="1999">] hash = Hash.new {|hash, key| hash[key] = []} #create a hash where acessing a non-existent key #creates the key and assigns an empty array to it arr.each do |budget| hash[budget.country] << [budget.year.to_i, budget.amount] end p hash --output:-- {"usa"=>[[1989, 15000], [1964, 20000]], "russia"=>[[1999, 14000]]} str = "var datasets = {\n" hash.each do |key, val| fragment =<<ENDOFSTRING2 "#{key}": { label: "#{key.upcase}", data: #{val.inspect} }, ENDOFSTRING2 str << fragment end #inspect produces the same output as p var result = str[0..-3] + "\n}" #gets rid comma(and newline) after last #element, then adds the closing parenthesis puts result --output:-- var datasets = { "usa": { label: "USA", data: [[1989, 15000], [1964, 20000]] }, "russia": { label: "RUSSIA", data: [[1999, 14000]] } } You''ll have to manipulate the label to get the exact format you need. Of course, you wouldn''t put all that code in a view. -- Posted via http://www.ruby-forum.com/.
Thank you very much. On May 5, 6:34 pm, nirvana <mrbl...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> => [#<Budget id: 1, country: "usa", year: "2000", amount: 15000>, > #<Budget id: 2 > , country: "usa", year: "2001", amount: 1564>, #<Budget id: 3, > country: "usa", y > ear: "2002", amount: 6463>, #<Budget id: 4, country: "usa", year: > "2003", amount > : 150002>, #<Budget id: 5, country: "usa", year: "2004", amount: > 5000>, #<Budget > id: 6, country: "usa", year: "2005", amount: 4150>, #<Budget id: 7, > country: "u > sa", year: "2006", amount: 100>, #<Budget id: 8, country: "germany", > year: "2000 > ", amount: 1000>, #<Budget id: 9, country: "germany", year: "2001", > amount: 1526 > 4>, #<Budget id: 10, country: "germany", year: "2002", amount: 64633>, > #<Budget > id: 11, country: "germany", year: "2003", amount: 1502>, #<Budget id: > 12, countr > y: "germany", year: "2004", amount: 500>, #<Budget id: 13, country: > "germany", y > ear: "2005", amount: 450>, #<Budget id: 14, country: "germany", year: > "2006", am > ount: 10>, #<Budget id: 15, country: "britian", year: "2000", amount: > 150>, #<Bu > dget id: 16, country: "britian", year: "2001", amount: 15064>, > #<Budget id: 17, > country: "britian", year: "2002", amount: 663>, #<Budget id: 18, > country: "briti > an", year: "2003", amount: 2002>, #<Budget id: 19, country: "britian", > year: "20 > 04", amount: 50000>, #<Budget id: 20, country: "britian", year: > "2005", amount: > 4150>, #<Budget id: 21, country: "britian", year: "2006", amount: > 1000>] > > On May 5, 4:49 pm, 7stud -- <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote: > > > > >mrblesswrote: > > > In my controller I have found all the movies like this > > > @budgets=Budget.find(:all).to_json > > > > Now in the view file what i want to do is something like this > > > <script> > > > var datasets = { > > > "usa": { > > > label: "USA", > > > data: [[1988, 483994], [1989, 479060], [1990, 457648], > > > [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], [1995, > > > 357382], [1996, 337946], [1997, 336185], [1998, 328611], [1999, > > > 329421], [2000, 342172], [2001, 344932], [2002, 387303], [2003, > > > 440813], [2004, 480451], [2005, 504638], [2006, 528692]] > > > }, > > > "russia": { > > > label: "Russia", > > > data: [[1988, 218000], [1989, 203000], [1990, 171000], > > > [1992, 42500], [1993, 37600], [1994, 36600], [1995, 21700], [1996, > > > 19200], [1997, 21300], [1998, 13600], [1999, 14000], [2000, 19100], > > > [2001, 21300], [2002, 23600], [2003, 25100], [2004, 26100], [2005, > > > 31100], [2006, 34700]] > > > } > > > } > > > </script> > > > What is the output if you write: > > > p @bugets > > > in the controller? > > > -- > > Posted viahttp://www.ruby-forum.com/.