これは文に条件を付ける有効な方法ですか?先日、1行に複数の文字を使用しているときに、複数の文字を使用していたのですが、& &や||レールで1行の条件文を使用する
@sales_opportunities << auction unless auction.company == current_user || !(auction.bids & current_user.bids).empty? || !auction.condition.include?(part.condition)
これは文に条件を付ける有効な方法ですか?先日、1行に複数の文字を使用しているときに、複数の文字を使用していたのですが、& &や||レールで1行の条件文を使用する
@sales_opportunities << auction unless auction.company == current_user || !(auction.bids & current_user.bids).empty? || !auction.condition.include?(part.condition)
いくつかの考え:
何かのように @sales_opportunities <<オークションオークションでない限り! || auction.includes_current_user_bid? || auction.doesnt_include_condition – gemart
@SergioTulentsevの答えを見ると、彼は頭に釘を打つ。 –
@CaptainChaosと@PascalBetzは言った。最低でも、その状態の部分を説明的な名前のローカル変数に抽出します。このようなもの:
insider_user = auction.company == current_user
user_placed_bids = (auction.bids & current_user.bids).present?
part_matches = auction.condition.include?(part.condition)
@sales_opportunities << auction unless insider_user || user_placed_bids || !part_matches
これはもっと管理しやすくなっていますか?
この場合、キーワード 'or'は' || 'より読みやすくなります。 – Aetherus
@Aetherus:議論の余地があります。私は条件付きで 'または'を見ると、私は私の歯を握りしめます:) –
エラーが表示されたり、期待していなかった結果が得られましたか? –
@JohnFeltz有効であるかどうかにかかわらず、 – gemart
のような 'unless'の後に複数の条件を1行に入れても問題ないのでしょうか?それは判読不能です。リファクタリングし、条件をメソッドに移します。 –