Can save object via console, but not in app's controller

My app has a ‘page’ model and a ‘category’ model.
‘Page’ belongs_to :category.
‘Category’ has_many :pages.

From the console I can create and save a page object with no problems:

p = Page.new
#<Page id: nil, title: nil, body: nil, created_at: nil, updated_at: nil,
published: nil, read_counter: nil, category_id: nil>

p.title, p.body, p.category_id = “Test”, “Test”, “1”
#<Page id: nil, title: “Test”, body: “Test”, created_at: nil,
updated_at: nil, published: nil, read_counter: nil, category_id: 1>

p.save
=> true

Yet, when I submit the same data in a post request to my controller,
‘category_id’ is being ignored.

The page object is created in my controller thus:
@page = Page.new(params[:page])

If I write the contents of ‘params[:page]’ to WEBrick, I see:
{“title”=>“Test”, “body”=>“Test”, “category_id”=>“1”}

If I write the contents of @page to the WEBrick, I see:
#<Page id: nil, title: “Test”, body: “Test”, created_at: nil,
updated_at: nil, published: nil, read_counter: nil, category_id: nil>

I get the same result on the console:

params = {“title”=>“Test”, “body”=>“Test”, “category_id”=>“1”}
p = Page.new(params)
#<Page id: nil, title: “Test”, body: “Test”, created_at: nil,
updated_at: nil, published: nil, read_counter: nil, category_id: nil>

p.save
=> false

Does anyone have any tips they can give me?
Am I missing something really obvious?

Thanks in advance

Please ignore my question.

Changed: attr_accessible :category
into:
attr_accessible :category_id
and it works now.

Doh!
Checked, double checked and tripple checked before posting, but still I
missed that!