Как я могу сделать этот код более Ruby-esque? - PullRequest
0 голосов
/ 07 мая 2010
unless scope.nil?
  @page ||= Page.find(id, :scope => Page.find(scope) )
else
  @page ||= Page.find(id)
end

Ответы [ 5 ]

3 голосов
/ 07 мая 2010
@page ||=  Page.find id, :scope => (Page.find scope if scope)
2 голосов
/ 07 мая 2010

Это немного СУШКИ:

find_opts = scope.nil? ? {} : {:scope => Page.find(scope)}
@page ||= Page.find(id, find_opts)
1 голос
/ 07 мая 2010

Я бы написал этот блок следующим образом.Это действительно сводится к предпочтениям, но я считаю этот способ наиболее читабельным.

@page ||=
  if scope
    Page.find id, :scope => Page.find(scope)
  else
    Page.find id
  end
0 голосов
/ 07 мая 2010

Или:

@page ||= scope.nil? ? Page.find(id) : Page.find(id, :scope => Page.find(scope))
0 голосов
/ 07 мая 2010

Вы можете сделать:

@page ||= unless scope.nil?
  Page.find(id, :scope => Page.find(scope))
else
  Page.find(id)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...