My models are setup as such User < Assignments > Course > Level > Step - in plain english a user take a course which creates an assigment, that assigment has many levels and many steps. 
I am trying to access the current step for the current user, so I can change a field in the database. 

```
class User < ActiveRecord::Base
  has_many :assignments, dependent: :destroy
  has_many :courses, through: :assignments
end

class Assignment < ActiveRecord::Base
  belongs_to :user
  belongs_to :course
end

class Course < ActiveRecord::Base
  has_many :assignments
  has_many :users, through: :assignments
  has_many :levels
  accepts_nested_attributes_for :levels, allow_destroy: true
end

class Level < ActiveRecord::Base
  belongs_to :course
  has_many :steps
  accepts_nested_attributes_for :steps, allow_destroy: true
end

class Step < ActiveRecord::Base
  belongs_to :level
end

```

My step model has a field called "state", which determines whether a step is completed or not for a user- I am trying to access the "state" of a step for a current user,so I can change it or display it as I please. In order to do this I need to obtain the current step for the user (not just the current step, as that will change the value for everyone) in my controller. 

```
class StepsController < ApplicationController   
    before_filter :authenticate_user!

    def show
        @course = Course.find(params[:course_id])
        @level = Level.find(params[:level_id])
        @step = Step.find(params[:id])
        @step_list = @level.steps
            // the above all work fine up to this point
        @assignment = Assignment.find(params["something goes here"])
        @user_step = @assignment.@course.@level.@step
    end

end

```

This, of course, does not work. How would I write @user\_step given the above information?