2014-06-23 1 views
-2

J'ai un modèle dans les rails 4.1.1 appelé 'article'Ai-je besoin d'un nouveau modèle Rails?

article a plusieurs attributs comme 'photo1', photo2, etc, qui sont des liens vers des fichiers amazon s3. Lorsque j'édite des éléments, je souhaite avoir un bouton de suppression pour chaque photo dans la vue d'élément d'édition, qui est supprimée de l'occurrence de l'élément (lien dans ma base de données) et du fichier s3.

J'ai ceci fonctionnant d'une manière grossière mais je me sens comme je ne peux pas faire des choses idéalement. (J'apprends le rubis et les rails).

La photo doit-elle être un autre modèle pour les fichiers photo s3 seulement? J'ai créé une méthode delphoto dans le contrôleur de l'objet à laquelle je passe l'identifiant de l'élément et le choix de la photo à supprimer, mais il se sent mal. On dirait que je devrais peut-être avoir une table de photos qui est un modèle lié à la place. Si cela aide, j'ai l'intention d'ajouter d'autres modèles comme des fruits, des voitures, etc qui auront tous des photos aussi.

De même, le code à supprimer doit-il être dans le contrôleur ou le modèle? Je devine le modèle, auquel cas j'appellerais la méthode de modèle du contrôleur d'élément pour supprimer juste?

Répondre

0

Oui, je ferais certainement un nouveau modèle. Ayez le modèle Item, puis créez un autre modèle appelé ItemPhoto avec :item_id en tant qu'attribut pour lier ces lignes à leur parent d'élément. Ensuite, stockez les informations de la photo là-bas à la place. Je pense que vos questions à propos de la suppression de code disparaîtront une fois que vous vous éloignerez des photos dans le même modèle que l'élément. Le code de suppression devrait être dans le contrôleur.

+0

merci pour les conseils –