work code
$discuss = Discussions::findFirst(3);
$newTitle = $discuss->getTitle() . ' new';
$discuss->setTitle($newTitle);
$discuss->update();
$discuss = Discussions::findFirst(3);
var_dump($discuss->toArray());
sql log
[Wed, 27 Aug 14 21:17:52 +0300][INFO] SELECT `discussions`.`id`, `discussions`.`title`, `discussions`.`topic`, `discussions`.`categories_id`, `discussions`.`users_id`, `discussions`.`created_at`, `discussions`.`slug` FROM `discussions` WHERE `discussions`.`id` = 3 LIMIT :1
[Wed, 27 Aug 14 21:17:52 +0300][INFO] UPDATE `discussions` SET `title` = ?, `topic` = ?, `categories_id` = ?, `users_id` = ?, `created_at` = ?, `slug` = ? WHERE `id` = ?
[Wed, 27 Aug 14 21:17:52 +0300][INFO] SELECT `discussions`.`id`, `discussions`.`title`, `discussions`.`topic`, `discussions`.`categories_id`, `discussions`.`users_id`, `discussions`.`created_at`, `discussions`.`slug` FROM `discussions` WHERE `discussions`.`id` = 3 LIMIT :1
output
array(7) { ["id"]=> string(1) "3" ["title"]=> string(17) "Discussions 3 new" ["topic"]=> string(22) "Topic of discussions 3" ["categories_id"]=> string(1) "2" ["users_id"]=> string(1) "7" ["created_at"]=> string(10) "1409163472" ["slug"]=> string(17) "discussions_3_new" }
Code of model Discusiions you can find at https://github.com/oleg578/PhalconForumSample/blob/master/Apps/Models/Discussions.php
P.S.
You don't need foreign key usually. See MySQL documentation. And check your foreign keys, or delete it :)