Hallo zusammen,
ich habe hier ein Problem, bei dem ich nicht weiterkommen.
Folgende Routen ist gegeben:
1
resources:usersdo
2
get:send_activation_email,:on=>:member
3
end
Das get in der 2. Zeile fügt eine Route hinzu, die folgendes Format hat.
localhost/users/:id/send_activation_email
Wenn ich aber später irgendwo Verlinken will
1
<%=url_forsend_activation_email_path(@user)%>
ist der erzeugte Pfad immer /users/send_activation_email/:id .
Wie ist der offizielle Weg einen Pfad zu erzeugen (url_for, link_to,...)
ohne den Pfad von Hand zusammen zu bauen?
Danke und Grüße
definiere? Ich habe es zuerst ohne :as und dann aus Verzweiflung noch
mal mit :as probiert. Aber weder in dem einen noch in dem anderen Fall
ist send_activation_email_path (oder url) definiert.
Fehlermeldung: undefined method `send_activation_email_path' for
#<#<Class:0x3dbb1a8>:0x3ada378>
Be Bo schrieb:> Ok, ich muß mich etwas korrigieren.>> Wenn ich die Route mitmatch "/users/:id/send_activation_email", :to =>
"users#send_activation_email", :as => :send_activation_emaildefiniere, dann klappt
es tatsächlich, so wie Du es beschrieben hast.
>> Was ist aber, wenn ich die Route mit resources :users do> get :send_activation_email, :on => :member, :as => :send_activation_email> enddefiniere? Ich habe es zuerst ohne :as und dann aus Verzweiflung noch> mal mit :as probiert. Aber weder in dem einen noch in dem anderen Fall> ist send_activation_email_path (oder url) definiert.> Fehlermeldung: undefined method `send_activation_email_path' for> #<#<Class:0x3dbb1a8>:0x3ada378>
weils user_send_activation_mail_path(id) heißt, da die aktion innerhalb
der ressource definiert wurde
Btw. ein "rake routes" auf der konsole gibt dir alle routen die in
routes.rb definiert sind aus :) Unglaublich nützlich.
Der Routenmechanismus in Rails ist schon ziemlich mächtig, da lässt sich
verrücktes Zeug machen, z.b.:
Be Bo schrieb:> Vielleicht noch eine kleine Frage:>> Wie kann ich diese Route> match "/users/:id/activate/:activation_code", :to => "users#activate", :as =>
:activate
> in das Resource Model einbetten.> resources :users do> get :send_activation_email, :on => :member, :as => :send_activation_email> end
Puuh kann ich dir adhoc jetzt nicht sagen, aber ich vermute etwas in der
Richtung: