On Aug 3, 2007, at 17:01 , Brian Hogan wrote:

> Well see that's exactly why I am confused.
> I understand the data integrity thing and the security thing, but  
> how far do you take that?
>
> /users/1/projects/2/tasks/3/notes/4
>
> @user.find(params[:user_id]
> @project  @user.projects.find(params[:project_id]
> @task = @project.tasks.find(params[:task_id]
> @note = @task.notes.find(params[:id]
>
> That just really seems to get messy. Is that really the approach  
> you'd take? I assume you'd use some sort of includes there to  
> reduce the db calls then, right?
>

AIUI, In this situation, I'd be in the notes_controller. I'd have  
already set up find_user, find_project, find_task, and  
find_note_by_id methods called by before_filter, e.g.,

# in application.rb
private
def find_user
   @user = User.find(params[:user_id])
end

def find_project
   @project = @user.projects.find(params[:project_id])
end

def find_task
   @task = @project.tasks.find(params[:task_id])
end

# in notes_controller.rb
private
before_filter :find_user
before_filter :find_project
before_filter :find_task
before_filter :find_note, :except => [:index, :new, :create]

def find_note_by_id
   @note = @task.notes.find(params[:id])
end

Very succinct, I believe.

Michael Glaesemann
grzm seespotcode net



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to