C'est moche si tu considère private au sens du C++ et Java. Ce n'est pas le
même qu'en Ruby :

Je cite cette page qui t'éclaireras :
http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Classes

*More info about the difference between C++ and Ruby
private/protected: http://lylejohnson.name/blog/?p=5
<http://lylejohnson.name/blog/?p=5>*

*One person summed up the distinctions by saying that in C++, “private”
means “private to this class”, while in Ruby it means “private to this
instance”. What this means, in C++ from code in class A, you can access any
private method for any other object of type A. In Ruby, you can not: you
can only access private methods for your instance of object, and not for
any other object instance (of class A).*

*Ruby folks keep saying "private means you cannot specify the receiver".*

2014-09-19 14:31 GMT+02:00 Tim <itsumo.sibyl...@gmail.com>:

> Merci pour le lien
>
> Donc en Ruby, les méthodes privées peuvent être appelées par les enfant
> sans "effort".
>
> Y a que moi qui trouve ça très moche ?
>
>
> Le vendredi 19 septembre 2014 14:13:18 UTC+2, Tim a écrit :
>
>> Salut à tous
>>
>> Je viens de tomber sur quelque chose qui perturbe totalement mon
>> intuition de dev :
>>
>> apparemment une méthode déclarée comme privée est accessible par son
>> enfant dans le controller : voici mon code réel :
>>
>> Rails 4.1.5 (fonctionne aussi sur 3.2.19), Ruby 2.1.2
>>
>> class ApplicationController < ActionController::Base
>>   protect_from_forgery with: :exception
>>
>>   private
>>
>>   def method_privee
>>     p "method_privee accessible"
>>   end
>> end
>>
>>
>> class PhrasesController < ApplicationController
>>   def index
>>     method_privee # affiche "method prive accessible"
>>   end
>> end
>>
>> Ce code (je viens de le lancer plusieurs fois) fonctionne lorsque l'on va
>> sur /phrases/index et ne fais pas "raise error, NoMethodError" mais affiche
>> bien "method_privee accessible"
>>
>> Quelqu'un peut m'expliquer ? merci
>>
>> Ciao.
>>
>  --
> --
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
> railsfrance@googlegroups.com
> Pour résilier votre abonnement envoyez un e-mail à l'adresse
> railsfrance-unsubscr...@googlegroups.com
> ---
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
> "Railsfrance".
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
> concernant, envoyez un e-mail à l'adresse
> railsfrance+unsubscr...@googlegroups.com.
> Pour obtenir davantage d'options, consultez la page
> https://groups.google.com/d/optout.
>



-- 
Jean-Hadrien Chabran

-- 
-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
railsfrance@googlegroups.com
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
railsfrance-unsubscr...@googlegroups.com
--- 
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
Railsfrance.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, 
envoyez un e-mail à l'adresse railsfrance+unsubscr...@googlegroups.com.
Pour plus d'options, visitez le site https://groups.google.com/d/optout .

Répondre à