Thread View: pl.comp.lang.ruby
2 messages
2 total messages
Started by punkracy
Thu, 25 Jan 2007 12:01
losowy wybór obiektów
Author: 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
Re: losowy wybór obiektów
Author: Bragi Ragnarson
Date: Fri, 09 Feb 2007 09:32
Date: Fri, 09 Feb 2007 09:32
18 lines
1692 bytes
1692 bytes
On Jan 25, 1:01 pm, "punkracy" <punkr...@gmail.com> wrote:
> Mam model Section, w którym trzymam informacje o działach (np.
> Historia, Matematyka, Biologia). Mam też model Question dla pytań
> odpowiednich dla kategorii.
class Section
has_many :questions do
def random(size=4)
find(:all, :limit => size, :order => 'RANDOM()')
end
end
end
@questions = Section.find(:first).questions.random # => Zwraca 4
losowe elementy
Pozdrawiam,
Łukasz
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads