Forum: Rails Germany ein event von vielen

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Be9e2fbdde81b5249d4fd5a6fe27aa19?d=identicon&s=25 Philipp Thole (herrt)
on 2008-10-19 16:24
hi

ich habe folgendes problem bzw. situation:
in einer tabelle habe ich veranstaltungen gespeichert.
die frage ich im controller ab.
so weit so gut.

jetzt kann es aber sein, das eine bestimmt veranstaltung hervorgehoben
sein soll.
wie wähle ich diese dann aus ?

im moment mache ich es so:
def index
    if params[:id]
      event_date = params[:id]
      @single_event = Event.find(:first, :order => "date ASC",
:conditions => ["date  = ?", event_date] )
    else
      today = Time.now - 1.day
      @single_event = Event.find(:first, :order => "date ASC",
:conditions => ["date  > ?", today] )
    end

    @absolute_all_events = Event.find(:all, :order => "date ASC" )
    @page_title = @single_event.title

  end

das muss doch aber auch besser gehen, oder ?


vielen dank,
philipp
A46ca7c2903460c19ffeee0476b9542d?d=identicon&s=25 Torsten Flammiger (Guest)
on 2008-10-19 17:03
(Received via mailing list)
Philipp Thole schrieb:
> hi
>
> ich habe folgendes problem bzw. situation:
> in einer tabelle habe ich veranstaltungen gespeichert.
> die frage ich im controller ab.
> so weit so gut.
>
> jetzt kann es aber sein, das eine bestimmt veranstaltung hervorgehoben
> sein soll.
> wie wähle ich diese dann aus ?

setze eine Instanzvariable in der Index-Methode des Controllers.
Auf die kannst Du im View oder per Helper zugreifen...

> im moment mache ich es so:
> def index
>     if params[:id]
>       event_date = params[:id]
>       @single_event = Event.find(:first, :order => "date ASC",
> conditions => ["date  = ?", event_date] )

wenns ein SINGLE EVENT ist, warum dann 'order => ...'?
Ohne jetzt tiefer einzutauchen würde ich schreiben:
@single_event = Event.find_by_date(params[:id])

Torsten
Be9e2fbdde81b5249d4fd5a6fe27aa19?d=identicon&s=25 Philipp Thole (herrt)
on 2008-10-19 17:40
hi torsten,

vielen dank für deinen tipp.
Event.find_by_date klappt prima :)

allerdings würde ich mir die single event abfrage ja lieber sparen.
also erst alle events aus der db holen:
  @absolute_all_events = Event.find(:all, :order => "date ASC" )

und dann aus dieser instanzvariable das event rausfischen, um das es
geht.
hast du eine idee wie ich das am besten anstelle ?

liebe grüße,
philipp
64502c61ed41ff9e917499a2347dd9fe?d=identicon&s=25 Werner Laude (Guest)
on 2008-10-19 19:00
(Received via mailing list)
Am 19.10.2008 um 16:24 schrieb Philipp Thole:

Hallo Philipp
>
>
> jetzt kann es aber sein, das eine bestimmt veranstaltung hervorgehoben
> sein soll.
> wie wähle ich diese dann aus ?
>
> das muss doch aber auch besser gehen, oder ?
>


was ähnliches gefunden.. da könntest du was draus machen:

View:
<% if article.recent? %>
<strong>Was neues..! </strong>
<%end%>

Model:
def recent?(compare_to=1.month.ago)
   updated_at  <  compare_to
end

Gruß



Werner Laude
Lindenburger Allee 22  -  50931
Köln
0221.8805 635

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

http://www.webagentur-laude.de

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
978ed7ca309d5495078702096f9add03?d=identicon&s=25 Thomas R. Koll (Guest)
on 2008-10-19 19:02
(Received via mailing list)
Am 19.10.2008 um 18:59 schrieb Werner Laude:
>
> View:
> <% if article.recent? %>
> <strong>Was neues..! </strong>
> <%end%>
>
> Model:
> def recent?(compare_to=1.month.ago)
>  updated_at  <  compare_to
> end

oder natürlich gleich als named_scope damit man's auch für den finder
verwenden kann.

ciao, tom

--
Thomas R. "TomK32" Koll || http://tomk32.de || http://ananasblau.com
just a geek trying to change the world
Skype: TomK32 || Mail: tomk32@gmx.de
http://beta.lomography.com/homes/TomK32
Ed52fe6b5cf49246210e767b7bc1c940?d=identicon&s=25 Niko Dittmann (Guest)
on 2008-10-19 19:19
(Received via mailing list)
Hi Philipp.

Am 19.10.2008 um 17:40 schrieb Philipp Thole:
> vielen dank für deinen tipp.
> Event.find_by_date klappt prima :)
>
> allerdings würde ich mir die single event abfrage ja lieber sparen.
> also erst alle events aus der db holen:
>  @absolute_all_events = Event.find(:all, :order => "date ASC" )
>
> und dann aus dieser instanzvariable das event rausfischen, um das es
> geht.
> hast du eine idee wie ich das am besten anstelle ?
Well… sowas wie

@all_events = Event.find(:all, :order => "date ASC" )
@single_event = @all_events.select{|e| e.date.to_s > today}.first

vielleicht?


Cheers, Niko.
A46ca7c2903460c19ffeee0476b9542d?d=identicon&s=25 Torsten Flammiger (Guest)
on 2008-10-19 19:24
(Received via mailing list)
Philipp Thole schrieb:
> hi torsten,
>
> vielen dank für deinen tipp.
> Event.find_by_date klappt prima :)

i hope(d) so!

> allerdings würde ich mir die single event abfrage ja lieber sparen.
> also erst alle events aus der db holen:
>   @absolute_all_events = Event.find(:all, :order => "date ASC" )
>
> und dann aus dieser instanzvariable das event rausfischen, um das es
> geht.
> hast du eine idee wie ich das am besten anstelle ?

naja, im Prinzip hat das Werner schon (besser) ge- und beschrieben...

to
A46ca7c2903460c19ffeee0476b9542d?d=identicon&s=25 Torsten Flammiger (Guest)
on 2008-10-19 19:28
(Received via mailing list)
Philipp Thole schrieb:

> allerdings würde ich mir die single event abfrage ja lieber sparen.
> also erst alle events aus der db holen:
^^^^^^^^^^^^^^^^
inwieweit das sinnvoll ist, sollte jeder selbst überdenken!
Nur als Anmerkung - je nach Aufkommen kann das auch mal viel werden!

to
Ed52fe6b5cf49246210e767b7bc1c940?d=identicon&s=25 Niko Dittmann (Guest)
on 2008-10-19 19:33
(Received via mailing list)
Am 19.10.2008 um 19:27 schrieb Torsten Flammiger:
> Philipp Thole schrieb:
>> allerdings würde ich mir die single event abfrage ja lieber sparen.
>> also erst alle events aus der db holen:
> ^^^^^^^^^^^^^^^^
> inwieweit das sinnvoll ist, sollte jeder selbst überdenken!
> Nur als Anmerkung - je nach Aufkommen kann das auch mal viel werden!
Naja… sinnvollerweise ist natürlich pagination der nächste Schritt…
aber wenn ich's richtig verstanden habe war ja das Kernproblem, wie
man aus einer Collection von Events eins rausfischt, um's dann
besonders zu kennzeichnen.  ActiveRecord ist wohl so einfach zu
bedienen, dass die Leute schneller wissen, wie sie sowas mit AR
machen, als wie das mit Ruby selbst geht… oder ich habe das Ansinnen
vollkommen missverstanden, dann bitte ich präventiv um
Entschuldigung…  :D


Niko.
Be9e2fbdde81b5249d4fd5a6fe27aa19?d=identicon&s=25 Philipp Thole (herrt)
on 2008-10-19 21:34
hallo

erstmal allen vielen dank für die hilfe.
die antworten haben mir sehr weitergeholfen.

und
@single_event = @all_events.select{|e| e.date.to_s > today}.first
ist genau das was ich gesucht habe.

bei @all_events handelt es sich im moment um etwa 40 einträge.
jedes jahr kommen etwa 20 hinzu.
das sollte doch noch zu verkraften sein, oder ?

trotzdem, pagination werde ich mir noch mal ansehen.




also, noch mal vielen dank für die hilfe,
philipp
This topic is locked and can not be replied to.