unless scope.nil?
@page ||= Page.find(id, :scope => Page.find(scope))
else
@page ||= Page.find(id)
end
0
A
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)
À 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. –