Adding model attribute without db field

I need to add an attribute to a model but there is no need to add a
corresponding database field. The model is a child of ActiveRecord and
it corresponds to a table in my DB but when I add it in the usual Ruby
way, I get a ‘number of redirects exceeded’ error.

Here is my code;

The model;

class Category < ActiveRecord::Base
attr :status

The controlller;

if params[:id] then @category = Category.find(params[:id])
else @category = Category.find_by_default_category('1')
@category.status = 1

The view (just to access it)

<% for category in @categories %>
<%= category.status %>

So, is there a way to add an attribute to an existing table based model?

class Category < ActiveRecord::Base
attr_accessor :status

should do the trick

or you could do it longhand

def status

def status=(val)
@status = val

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs