🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.ruby
Article #423

losowy wybór obiektów

#423
From: punkracy
Date: Thu, 25 Jan 2007 12:01
59 lines
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-mail

Show 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