So habe ich meine Web-App-Setup so dass ein Benutzer ein Projekt erstellen kann, das nur von ihrem Team gesehen werden kann. Innerhalb des Projekts können Aufgaben erstellt werden. Ich möchte, dass diese Aufgaben nur auf das Projekt beschränkt sind, unter dem sie erstellt wurden. Wenn ich jedoch zwei separate Projekte erstelle und zum Ansichtsbildschirm navigiere, sehe ich unter jedem Projekt dieselben Aufgaben.Wie verschachtelte Ressourcen restriktiv gemacht werden können
TasksController
def index
project = Project.find(params[:project_id])
@task = project.tasks
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @tasks }
end
@task = Task.order('title').page(params[:page]).per(4)
end
def show
project = Project.find(params[:project_id])
@task = project.tasks.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @task }
end
end
ProjectsController
def index
@project = current_account.projects
end
def show
@project = current_user.projects.find(params[:project_id])
end
Routen
resources :projects do
resources :tasks
end
Danke für das Posten, habe ich diese Anpassung vorgenommen. Aber es tut immer noch nicht das, was ich erwartet habe. – nomad
ok darf ich wissen in welchem controller das programm noch nicht richtig index/show macht? – widjajayd
Ich habe also Projekt/1 und Projekt/2 Ich kann in Projekt/2 gehen und sehe Aufgaben aus Projekt/1 Ich möchte, dass sie auf das Projekt und Benutzer, unter denen sie erstellt wurden, beschränkt sind. Ich glaube, dass der Aufgaben-Controller-Index dort ist, wo mehr Code benötigt wird. Ich weiß, dass ich Can Can versuchen könnte, würde aber vielleicht lieber meine eigene Erlaubnis rollen. – nomad