2010-05-07 5 views
0
unless scope.nil? 
    @page ||= Page.find(id, :scope => Page.find(scope)) 
else 
    @page ||= Page.find(id) 
end 
+2

À l'avenir, s'il vous plaît indenter le code par quatre espaces pour qu'il ressemble vraiment 'montré sur quand recueil HSC Stack Overflow. –

Répondre

3
@page ||= Page.find id, :scope => (Page.find scope if scope) 
+0

c'est le plus soigné certainement, et comme mentionné à la fin c'est à la préférence bien sûr. – ktec

0

Vous pouvez faire:

@page ||= unless scope.nil? 
    Page.find(id, :scope => Page.find(scope)) 
else 
    Page.find(id) 
end 
0

Ou:

@page ||= scope.nil? ? Page.find(id) : Page.find(id, :scope => Page.find(scope)) 
1

J'écririez le bloc en question comme suit. Cela dépend vraiment de la préférence, mais je trouve que c'est la façon la plus lisible.

@page ||= 
    if scope 
    Page.find id, :scope => Page.find(scope) 
    else 
    Page.find id 
    end 
2

C'est un peu sèche:

find_opts = scope.nil? ? {} : {:scope => Page.find(scope)} 
@page ||= Page.find(id, find_opts)