Calling a models function via a link

Hey,

If i have a function in my model:   def mark_sold     self.update_attribute(:market_status, 'sold')   end

Is it possible for this to be called via an on page link?

Then I'd like to ajax it so a user could just scroll down a list clicking all links to "mark as sold" as he comes across old inventory.

Thanks, brianp

Quoting brianp <brian.o.pearce@gmail.com>:

Hey,

If i have a function in my model:   def mark_sold     self.update_attribute(:market_status, 'sold')   end

Is it possible for this to be called via an on page link?

Then I'd like to ajax it so a user could just scroll down a list clicking all links to "mark as sold" as he comes across old inventory.

Browser requests always are to controller methods. Any other way you are fighting Rails' MVC opinioned structure.

Add a method to a controller and the route to config/routes.rb:

def mark_sold   model = Model.find(params[:id])   model.mark_sold   render :partial => ..., :object => model end

The render should generate the HTML for the changed model instance that the AJAX will replace.

HTH,   Jeffrey

Thanks Jeffrey,

I had a good feeling this is how it needed to be done. But felt like I was bloating my controller. Now I'm happy knowing I was originally going in the right direction.

Thanks again. brianp