Forum: Ruby on Rails Passing aariable from controller to a different view ????

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Dave S. (Guest)
on 2008-12-22 15:23
Hi Guys,

I am still very new to this rails stuff so I'm looking for some help. I
have a login controller which authenticates a person and redirects them
to the projects page, here is a snippet of code.

======================================================================
if request.post?
          person = Person.authenticate(params[:email_address],
params[:password])
          if person
            session["user_id"] = person.id
            if person.type == "Customer"
              flash[:notice] = "You have successfully logged in"
              redirect_to(:controller => "projects", :action => "index"
)
            end
          else
            redirect_to :action => "login"
            flash[:notice] = "Invalid user/password combination"
          end
        end
======================================================================

I have a projects controller which has a field company_id (as a project
belongs to a company). I also have a people table which holds the
customers (as well as admins based on person.type).

I want to be able to redirect the person to the projects table and have
the projects displayed only for that user.

In the customer model I have specified  belongs_to :company.
In the project model I have also specified  belongs_to :company.
In the company model I have specified  has_many :projects.

Somehow I need to get the person logging in from the login controller
and transfer that to company controller and then pass that to the the
projects controller to use in the project view.

But I have really stuck on how to do this!

Please can someone help!

Regards,

Dave
Ryan B. (Guest)
on 2008-12-22 15:54
(Received via mailing list)
Use restful authentication (or a similar plugin) for tracking that
kind of stuff: http://github.com/technoweenie/restful_authentication
-----
Ryan B.
Freelancer
http://frozenplague.net
Dave S. (Guest)
on 2008-12-22 16:49
Ryan B. wrote:
> Use restful authentication (or a similar plugin) for tracking that
> kind of stuff: http://github.com/technoweenie/restful_authentication
> -----
> Ryan B.
> Freelancer
> http://frozenplague.net

Couldnt I just do the following... in my projects controller?


before_filter :find_projects

def index
  #  @projects = Project.find(:all)
  #  @project_company = @projects.company_id
    @projects = @results.find(:all)

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @projects }
    end
  end

def find_projects
    @user_in = Person.find_by_id(session["user_id"])
    @company = Company.find_by_id(@user_in.company_id)
    @results = Company.find(@company.id).projects # Find all projects
that belong to company
  end
This topic is locked and can not be replied to.