2017-04-24 4 views
0

Doing Hartl's Rails Tutorial, chapter 8.2.1.ist log_in (Benutzer) das gleiche wie log_in Benutzer?

Wir definieren:

def log_in(user) 
    session[:user_id] = user_id 
end 

Und dann rufen wir die log_in Methode in der Steuerung:

def create 
    user = User.find_by(email: params[:session][:email].downcase) 
    if user && user.authenticate(params[:session][:password]) 
    log_in user 
    redirect_to user 
    else 
    flash.now[:danger] = 'Invalid email/password combination' 
    render 'new' 
    end 
end 

Warum wir log_in user statt log_in(user) in der Steuerung schreiben? Sind sie äquivalente Syntaxen? Danke

Antwort

3

Ja.

als Teil der syntaktischen Zucker Ruby, Sie die Klammern auf Drop-Methode können Anrufe

Zum Beispiel können sagen, dass Sie eine Methode, die in einem Hash nimmt

Sie können es nennen jede der folgenden Arten:

method_name({param1: 1, param2: 2}) 
method_name(param1: 1, param2: 2) 
method_name param1: 1, param2: 2 

Wann verwenden welche? Hängt davon ab.

Wenn Sie Methodenaufrufe verschachteln möchten, ist es am besten, ausführlich zu sein. Wenn Sie mehrere Hashes übergeben müssen, müssen Sie Ruby ihre Grenzen mitteilen, indem Sie die {} Klammern verwenden.

Verwandte Themen