Ich frage mich, ob jemand damit helfen kann ... es ist sehr frustrierend für mich.Rails5 Routing und bedingte Anweisungen
Erstens bin ich immer noch ziemlich neu in all dem. Ich entschuldige mich, wenn ich eine falsche Terminologie bekomme. Ich habe einige Tutorials abgeschlossen und arbeite jetzt an meiner ersten App ohne geführte Walkthroughs ... es geht langsam :)
Ich habe zwei Gruppen von Seiten, eine Gruppe, wo ich eine Sidebar zeigen sollte und eine Gruppe, die nicht tut brauchen. meine Routen ...
Rails.application.routes.draw do
#----Pages----
root 'pages#home'
get '/home', to: 'pages#home'
get '/contact', to: 'pages#contact'
#----Users----
get '/app', to: 'users#app'
get 'users/new', to: 'users#new'
get '/users', to: 'users#index'
get '/signup', to: 'users#new'
post '/signup', to: 'users#create'
#----Sessions----
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
delete '/logout', to: 'sessions#destroy'
#----Projects----
get'/projects/:id', to: 'projects#show'
get '/projects', to: 'projects#index'
get '/projects/new', to: 'projects#new'
post '/projects/new', to: 'projects#create'
#----Hazards----
get'/hazards/:id', to: 'hazards#show'
get '/hazards', to: 'hazards#index'
get '/hazards/new', to: 'hazards#new'
#----Resources----
resources :users
resources :projects
resources :hazards
end
Ich habe den folgenden Code in meinem Kopf Im Folgenden sind die gut funktioniert ...
<% if current_page?(app_path) ||
current_page?(users_path) ||
current_page?(projects_path) ||
current_page?(hazards_path)
<%= render 'layouts/sidebar' %>
<% end %>
es eine Sidebar auf diesen Pfaden oben und nicht auf die anderen liefert aufgeführt. Allerdings ... Ich wünsche oben Seiten aus dem ‚project_path‘ so/projects/6 usw. auf der Liste hinzuzufügen Um dies zu erreichen, ich die folgende Zeile in dem obigen Code ... hinzugefügt in
current_page?(project_path(:id)
führt. ..
<% if current_page?(app_path) ||
current_page?(users_path) ||
current_page?(projects_path) ||
current_page?(hazards_path) ||
current_page?(project_path(:id)) %>
<%= render 'layouts/sidebar' %>
<% end %>
Nach dem Hinzufügen der App lädt fein, aber die Sidebar wird nicht auf der Projektseite hinzugefügt. Also habe ich versucht, ein alternatives Verfahren wie folgt ...
current_page?(project_path(@project))
Nach dieser Änderung der Projektseite nun die Seitenleiste zeigt richtig, aber ... alle anderen Seiten, die nicht scheitern die Sidebar haben mit dem folgenden Fehler zu laden. ..
No route matches {:action=>"show", :controller=>"projects", :id=>nil} missing required keys: [:id]
ich an meinem Latein am Ende bin ... ich habe auch versucht
current_page?(project_path(params.permit))
Current_page?(project_path(project))
current_page?(project_path(project(params[:id])))
mir bitte jemand kann aus meinem Elend setzen ... das ist keine Übertreibung ... pure Elend.
vielen dank.
bekommen ... was ist, wenn ich Ihnen sagte, dass es jetzt 03:51 in der bin und ich habe am Morgen arbeiten .... Ich bin total engagiert ... jeder Nehmer –