2 "newbie questions"

Hello -

Being new to Ruby and Rails I am finding some hurdles that kind of
slow my progress.

1. What is the difference between the 2 statements:

staff = Staff.find(params[:id])
@staff = Staff.find(params[:id])

I find books and articles using either of them but I fail to grasp why
this should be different

2. This piece of code does not work and I have no idea why:


    @subscriber = Subscriber.new(params[:subscriber])

the function activate is defined in the model:
  def activate
    @active = 1

(active beeing one of the row of the table).

Result: this does not set active to 1.
If in my controller I set @subscriber.active = 1 then it works and the
row is saved with active set to 1.

Thanks for your help !!!

Thanks for the answer. I know understand about the scope thing.
I've tried using "active = 1" in my model but this still does not
work. Any further idea?

On the model:

try this:

def activate
  self.active = 1
  self.save #you might even remove this, not sure

or, if it does not work, you can always use

def activate(user_id)
  user = User.find_by_id(user_id)
  user.active = 1

and then in the controller

User.activate(222) #or whatever the id is

Best regards,


def activate
  self.active = 1

-> This works! Many thanks Felipe!