J'ai le code suivant:
class ArticlesController < ApplicationController
def new
p self.class.object_id
@article = Article.new
end
def create
p self.class.object_id
@article = Article.new(article_params)
if @article.save
redirect_to @article
else
render 'new'
end
end
private
def article_params
params.require(:article).permit(:title, :text)
end
end
3 Réponses :
Par exemple, le référent de auto code> est un objet de ArticlesController code>, lorsque vous avez démarré le serveur, articlesController code> est attribué à un objet objet_id < / code>. Lorsque vous l'appelez dans le contexte de la classe, il renvoie le même objet_id code> à chaque fois. P>
Bonjour, @hererminio, chaque fois que le navigateur apporte une demande à l'étatController La nouvelle instance d'articlesController avec le même objet_id est créée - est-ce ce que vous dites?
J'ai essayé de faire le moins de changement minimum à votre réponse pour la rendre grammaticale et de donner un sens, mais ce n'est toujours pas clair ce que vous dites.
Dans Actions Nouveau et créez, l'objet n'a pas changé. P>
Self.class p> blockQuote>
Le même numéro sera retourné sur tous les appels à Object_ID pour un objet donné, et aucun objet actif ne partagera un identifiant. [objet_id] p>
Lorsque vous écrivez Essayez self.class.object_id code>, vous posez le object_id code> de votre strud> classe forte> articlesController code>, pas instance forte>. Bien sûr, ils seront les mêmes. P>
self.object_id code> ou juste objet_id code>, et vous verrez qu'ils sont différents. P>
objet_id code> suffit. Self Code> n'est plus nécessaire (il était nécessaire lorsque vous appelez classe code>).
Il ne suit pas logiquement que deux instances de contrôleur auraient différents identifiants d'objet. Compte tenu de suffisamment de temps entre les deux demandes de la première à prendre des déchets, elle ne suit que logiquement que la probabilité des deux instances de contrôleur ayant les mêmes identifiants d'objet est faible.