77 votes

Qu'est ce qu'une "ressource" dans les Rails?

Question stupide mais j'ai une certaine persistance de la confusion de ce qui, exactement, une "ressource" est dans les Rails. Le terme est utilisé partout, mais j'ai une drôle de sensation, il peut être utilisé sans discernement. Il est référencé dans le modèle, le contrôleur et, littéralement, en routes.rb.

Est-il la route? Par exemple, map.resources cartes les 7 Repos "ressources". Donc un exemple d' une ressource pourrait être l'appel à, disons, l' index action d'une catégorie donnée du contrôleur?!?

Est-ce une référence à l'ensemble de la page ou de l'objet en cours de récupération? ou peut-être, plus étroitement, d'une table de base de données? ou la rangée d'en être récupérées?

Est-ce autre chose?

De toute façon, j'espère que quelqu'un peut me droite...

96voto

Chris Heald Points 28814

N'importe quel objet que vous souhaitez que les utilisateurs soient en mesure d'accéder via l'URI et d'effectuer des opérations CRUD (ou un sous-ensemble de celui-ci) opérations sur peut être considéré comme une ressource. Dans les Rails de sens, il est généralement une table de base de données qui est représentée par un modèle, et agi par l'intermédiaire d'un contrôleur.

Par exemple, vous pourriez avoir un User des ressources (avec un users table dans votre base de données). Ceci est représenté par un User modèle, est mappé users_controller avec map.resources :users (ce qui génère alors des routes, comme /users (une collection de ressources de l'Utilisateur) et /users/1 (un Utilisateur spécifique des ressources).

Vous agissez sur ces ressources à l'aide de la méthode HTTP lorsque vous faites appel à ces ressources. POST de la collecte de ressources (/users) crée un nouvel enregistrement; GET récupère une liste de ressources (/users) ou un utilisateur spécifique (/users/1). PUT mises à jour d'un utilisateur spécifique (/users/1/), et DELETE détruit l'utilisateur. Les Url sont les mêmes, mais le résultat (et de contrôleur de l'action) peut être différent en fonction du verbe HTTP. L'idée, c'est que la /users/1 signifie toujours "je suis l'interaction avec l'Utilisateur qui possède l'ID #1", indépendamment de l'action.

9voto

JohnMetta Points 2120

Voici un bon article de discuter de la façon dont la plupart des développeurs pensent que "Ressource" est synonyme avec la table de base de données, l'argument, je suppose, étant donné que la cartographie de la ressource est la cartographie de la manette pour que la table de base de données (ou, avec ActiveResource, à un autre RESTE de l'url).

Fondamentalement, je pense qu'une "ressource" est "des données persistantes." map.resources cartes les 7 Reposante actions à une suite de données persistantes.

Mais je n'ai pas réfléchi trop en profondeur. Bonne question!

2voto

ouvrez votre modèle de dossier, qui est un indice de ce que les ressources que vous avez! exemple: les utilisateurs, les images, les commentaires...

2voto

Ken Points 1706

Je pense qu'ils ont probablement dire ça dans le web en général un sens, c'est à dire, des Ressources (Web):

le référent de toute Identificateur de Ressource Uniforme

Je ne pense pas que cela ait quelque chose à voir avec les tables de base de données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X