Hallo Liste, ich hoffe ich muss DRY. Ich habe einen KartenController und die zugehörigen Views (freiburg, weimar, erfurt) In den einzelnen views baue ich mir die image_url der Fotos über ein einfaches KartenController: def weimar @foto = Foto.find(:all) end def freiburg @foto = Foto.find(:all) end def erfurt @foto = Foto.find(:all) end Um dann in der entsprechenden View darüber interieren zu können und die einzelnen Fotodaten auszugeben. view: weimar.html.erb <% @foto.each do |foto| %> <%= foto.image_url %> <%= foto.beschreibung %> <% end %> view: efurt.html.erb <% @foto.each do |foto| %> <%= foto.image_url %> <%= foto.beschreibung %> <% end %> Das ist aber nicht nur RY sondern einfach nur schlechter Stil.
on 24.04.2008 21:44
on 24.04.2008 21:55
Hallo,
vielleicht etwas meta programming, mir würde da sponan soetwas einfallen:
Class karten_controller < ApplicationContoller
class_eval <<-EOV
Def controller.action_name
@fotos = Foto.find(:hast_du_noch_nicht_gesehen)
end
EOV
end
Sowas vielleicht?
Herzliche GRÜßE,
MICHAEL
Am 24.04.2008 21:43 Uhr schrieb "Mario Schroeder" unter
<schroedi2001@gmail.com>:
on 24.04.2008 22:13
Hallo,
nicht eher einfacher in der Art?
routes.rb
map.connect 'karten/:city', :controller => :maps, :action => 'show'
app/controllers/maps_controller.rb
class MapsController < ApplicationController
def show
@fotos = Foto.find :all
render :action => params[:city]
end
end
dann kannste in app/views/ deine views anlegen
weimar.html.erb mit
<% @fotos.each do |foto| %>
<%= foto.image_url %>
<%= foto.beschreibung %>
<% end %>
oder aber ganz einfach - wenn sich da nichts aendert: Nimm das render
aus der controller-action
raus, nimm eine show.html.erb view und zeig da einfach die fotos an.
wenn du immer die passenden bilder zeigen moechtest, du schreibst in
deiner mail immer
@fotos = Foto.find :all
und so wuerden ja immer die gleichen Bilder ueberall gezeigt,
dann kannst du das mit
@fotos = Foto.find_all_by_city params[:city]
regeln, vorrausgesetzt du hast die stadt (city) als feld in der db.
Aber das musst du an
deine DB-Gegenheiten anpassen.
Natuerlich muesstest du checken, ob params[:city] auch gesetzt ist und
ggf ein 404 schicken.
Getestet hab ich den Sourcecode oben nicht, ist ausm Kopf geschrieben...
Gruss,
Tom
on 24.04.2008 22:14
Hi,
Der moderne Dorfbewohner macht sowas über routes:
w%{erfurt weimar freiburg hintertupfing}.each do |city|
map.connect 'karten/#{city}/:action/:id', :controller
=> :karten, :city => city
map.connect 'karten/#{city}/:action/:id.:format', :controller
=> :karten, :city => city
end
ciao, tom
Am 24.04.2008 um 21:43 schrieb Mario Schroeder:
>
> end
> view: efurt.html.erb
> rubyonrails-ug@headflash.com
> http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
--
Thomas R. "TomK32" Koll || http://tomk32.de || http://ananasblau.com
just a geek trying to change the world
Skype: TomK32 || Mail: tomk32@gmx.de