Ich denke, was Sie wollen, ist die aktuelle Studie zu bearbeiten? In diesem Fall ist es möglich, ressource
anstelle von ressources
in den Routen zu verwenden.
Nehmen wir ein Beispiel haben: (. ZB bearbeiten in Ihrem Fall)
#in routes.rb
resources :studies
resource :study
Beide werden durch Standard-Link zu den StudiesController und rufen die gleichen Aktionen, aber in zwei verschiedenen Routen
get "/studies/:id/edit" => "studies#edit"
get "/study/edit" => "studies#edit"
in Ihrer Bearbeitungsaktion, sollten Sie dann Setup die Parameter korrekt zu handhaben:
def edit
@study = params[:id].nil? ? current_study : Study.find(params[:id])
end
Beachten Sie, dass Sie eine current_study-Methode benötigen und speichern Sie die aktuelle_Studie in Cookies/Sitzungen, damit sie funktioniert.
Beispiel:
# In application_controller.rb
def current_study
@current_study ||= Study.find_by(id: session[:current_study_id]) #using find_by doesn't raise exception if doesn't exists
end
def current_study= x
@current_study = x
session[:current_study_id] = x.id
end
#... And back to study controller
def create
#...
#Eg. setup current_study and go to edit after creation
if study.save
self.current_study = study
redirect_to study_edit_path #easy peesy
end
end
Glücklich Codierung,
Yacine.
Ich glaube nicht, ohne irgendwelche Params. – 7urkm3n
Kann ich Feedback zu den negativen Stimmen bekommen? Wie könnte ich meine Frage verbessern? – Mirror318