Article View: pl.comp.lang.ruby
Article #423losowy wybór obiektów
From: punkracy
Date: Thu, 25 Jan 2007 12:01
Date: Thu, 25 Jan 2007 12:01
59 lines
2630 bytes
2630 bytes
Witajcie,
napiszę tutaj, ponieważ jakoś nie mogę dostać się na Ruby on
Rails: Talk.
Mam model Section, w którym trzymam informacje o działach (np.
Historia, Matematyka, Biologia). Mam też model Question dla pytań
odpowiednich dla kategorii. Ustawiam relacje pomiędzy nimi (has_many,
belongs_to), tak, że mogę dostać się do pytań z pierwszej
kategorii z pomocą:
Section.find(:first).questions (Wiem, że to tablica*)
Taki oto kod:
<% for section in @sections %>
Section: <%= section.name %>
<% for question in section.questions %>
Question: <%= question.id %> - <%= question.body %>
<% end %>
<% end %>
Zwróci mi np.
Section: History
Question: 2 - Lorem ipsum a
Question: 3 - Lorem ipsum b
Question: 7 - Lorem ipsum c
Question: 12 - Lorem ipsum d
Section: Biology
Question: 4 - Lorem ipsum x
Question: 6 - Lorem ipsum y
Question: 8 - Lorem ipsum z
Question: 9 - Lorem ipsum w
Teraz chce wygenerować zbiór losowych i niepowtarzalnych pytań dla
każdej z kategorii. Np.:
Question: 3 - Lorem ipsum b
Question: 7 - Lorem ipsum c
Question: 4 - Lorem ipsum x
Question: 9 - Lorem ipsum w
*Używając tablic, można byłoby to zrobić mniej więcej tak (tylko
czy to jest ruby way) i nie można inaczej?
a = Array.new(10)
b = Array.new(7)
a.fill {|i| i}
r1 = 0..6
r1.each do |j|
i = rand(10-j)
x = a[i]
b[j] = x
a.delete_at(i)
end
Z góry dzięki za odpowiedź
--
Krzysztof Raczkiewicz
http://punkracy.com # Prawie jak Blog 27
http://10110.biz/pmug # Polish Mainframe User Group
Technical Details
Message-ID:
<1169726490.206776.285870@v45g2000cwv.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!newshub.sdsu.edu!postnews.google.com!v45g2000cwv.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!newshub.sdsu.edu!postnews.google.com!v45g2000cwv.googlegroups.com!not-for-mail From: "punkracy" <punkracy@gmail.com> Newsgroups: pl.comp.lang.ruby Subject: losowy wybór obiektów Date: 25 Jan 2007 04:01:30 -0800 Organization: http://groups.google.com Lines: 60 Message-ID: <1169726490.206776.285870@v45g2000cwv.googlegroups.com> NNTP-Posting-Host: 85.221.181.49 Mime-Version: 1.0 X-Trace: posting.google.com 1169726500 16474 127.0.0.1 (25 Jan 2007 12:01:40 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Thu, 25 Jan 2007 12:01:40 +0000 (UTC) User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.8.1.1) Gecko/20060601 Firefox/2.0.0.1 (Ubuntu-edgy),gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: v45g2000cwv.googlegroups.com; posting-host=85.221.181.49; posting-account=9l9-wgwAAADwl5oyDdy35OlZH9vv-YaD Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit