2009-12-07 2 views
1

http://github.com/samliu/rlinksetReddit clone dans Rails avec Rspec, problème resource_controller

^^ Mon code jusqu'à présent est poussé à là. Essentiellement, j'utilise resource_controller et je ne comprends pas vraiment resource_controller. Quand je échafaudage pour créer mon modèle Post, je lui ai donné des champs comme

:integer parent #to say what level a post is at (which post ID is this post's parent) 
:integer user_id #I meant for this to hold something like @user.id 

Maintenant, la forme d'échafaudage créé me permet de mettre dans ces valeurs. cependant, je veux qu'ils soient automatiquement mis en place par le contrôleur et ne soient pas quelque chose que l'utilisateur soumet. Comme, dans la logique backend, j'ai besoin de mettre @ post.user_id = @ user.id ou quelque chose comme ça.

Cependant, puisque resource_controller cache toutes les méthodes comme créer, indexer, nouveau, éditer, détruire, peu importe, je ne trouve pas où éditer la fonction dont j'ai besoin.

Je suis très nouveau dans le design TDD et RESTful. J'ai travaillé dans le passé sur des rails/rubis de base mais je n'y ai pas touché depuis un moment.

J'apprécierais quelques conseils! :)

Répondre

1

Ma première suggestion serait de ne pas utiliser ResourceController jusqu'à ce que vous soyez plus à l'aise avec Rails. Vous pouvez toujours faire du design TDD et RESTful avec les échafaudages, ils sont RESTful.

Si vous restez avec ResourceController, faites:

class PostsController < ResourceController::Base 
    create.before do 
    @post.user_id << current_user.id 
    end 
end 
+0

ah wow j'ai vu cela dans le doc resource_controller ... ça alors que je devais avoir fatigué ou quelque chose, haha. résolu mes problèmes, merci! :) – Sam