减少 if 语句以生成 mongoid 查询
Reducing an if statement to generate a mongoid query
我有下面的代码,我想知道是否可以减少代码。
bank_accounts = self.client_bank_account_id.nil? ? self.client.bank_accounts : self.client.bank_accounts.where(_id: self.client_bank_account_id)
我只需要在 client_bank_account_id
不是 nil
时调用 where
。
并没有更短,但我认为它更具可读性:
bank_accounts = self.client.bank_accounts
bank_accounts = bank_accounts.where(_id: self.client_bank_account_id) unless self.client_bank_account_id.nil?
这取决于您是选择 'shortest code possible' 高尔夫风格的代码还是最好的、可能更容易阅读的代码。
我会选择:
bank_accounts = client.bank_accounts
bank_accounts = bank_accounts.where(_id: client_bank_account_id) if client_bank_account_id
备注:
- 你不需要'self'。
- 零检查可能不是最好的方法。
- 延迟加载应该停止对数据库的两次调用
我有下面的代码,我想知道是否可以减少代码。
bank_accounts = self.client_bank_account_id.nil? ? self.client.bank_accounts : self.client.bank_accounts.where(_id: self.client_bank_account_id)
我只需要在 client_bank_account_id
不是 nil
时调用 where
。
并没有更短,但我认为它更具可读性:
bank_accounts = self.client.bank_accounts
bank_accounts = bank_accounts.where(_id: self.client_bank_account_id) unless self.client_bank_account_id.nil?
这取决于您是选择 'shortest code possible' 高尔夫风格的代码还是最好的、可能更容易阅读的代码。
我会选择:
bank_accounts = client.bank_accounts
bank_accounts = bank_accounts.where(_id: client_bank_account_id) if client_bank_account_id
备注:
- 你不需要'self'。
- 零检查可能不是最好的方法。
- 延迟加载应该停止对数据库的两次调用