0

2行目と3行目を1つのライナーに組み合わせて、1つの貴重なものを節約できる可能性はありますか?

def self.date_format
  record = find_by_key('strftime')
  record ? record.value : "%Y-%b-%d'
end

モデル内の上記の関数はConfig、キーによってデータベースレコードをフェッチしようとします。データベースに見つからない場合は、デフォルトを返します。

名前付きスコープで記述できればさらに良いです。ありがとう

4

4 に答える 4

4

要求に応じて。

まだ誰もtryについて言及していません。これはこの状況に最適です。

value = find_by_key('strftime').try(:value) || "%Y-%b-%d"

于 2010-06-04T02:57:59.500 に答える
1

あなたが使用することができます:

(find_by_key('strftime').value rescue nil) || "%Y-%b-%d"

ただし、例外の使用はあまり効率的ではありません。

于 2010-06-04T10:28:55.360 に答える
0

しますか

value = find_by_key('strftime') || "%Y-%b-%d"

あなたのために働きますか?

于 2010-06-04T02:37:28.120 に答える
0

「値」変数を割り当てる必要がありますか?そうでない場合...

def self.date_format
  find_by_key('strftime') || "%Y-%b-%d"
end
于 2010-06-04T02:44:48.880 に答える