2017-04-24 3 views
0

Doing Hartl 's Rails 튜토리얼, chapter 8.2.1.은 log_in (사용자)가 log_in 사용자와 동일합니까?

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

을 그리고 우리는 컨트롤러에 log_in 메소드를 호출 :

우리는 정의

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 

왜 우리가 log_in user 대신 컨트롤러 log_in(user) 쓰기? 그 (것)들은 동등한 구문입니까? 감사합니다

답변

3

예. 예. 루비의 문법 설탕의 일부, 당신은 방법에 괄호를 삭제할 수 있습니다으로

예를 들어

당신이 해시에 걸리는 방법

당신은 그것을 다음 방법 중 하나를 호출 할 수 있다고 가정 할 수 있습니다 호출

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

언제 사용합니까? 달려있어.

메서드 호출을 중첩하려면 자세한 정보를 표시하는 것이 가장 좋습니다. 여러 해시를 전달해야하는 경우 {} 대괄호를 사용하여 루비에게 경계를 알려줘야합니다.

관련 문제