您认为哪个更漂亮,更清洁?
1)
subscription && subscription.update_attributes(subscription_hash)
subscription
2)
subscription.tap { |s| s && s.update_attributes(subscription_hash) }
3)
subscription.tap do |sub|
sub.try(:update_attributes, subscription_hash)
end
4)
subscription.try(:update_attributes, subscription_hash) ? subscription : nil
请投票或其他......
答案 0 :(得分:2)
我会说#4
subscription.try(:update_attributes, subscription_hash) ? subscription : nil
阅读和理解imo更容易
答案 1 :(得分:2)
我会使用#1因为它的直截了当或#4因为它是一个相当可读的单行。
@Stefan - 您的代码很好,但无效。 subscription == nil
会失败,这似乎对这个问题非常重要
答案 2 :(得分:1)
我会说#1
subscription && subscription.update_attributes(subscription_hash)
subscription