Rubyの人がこのように書くのを笑ってくれませんか?私が見たRubyのコードのように、特に簡潔には思われません。これを書いているもっと慣れ親しんだRubyの方法は何ですか?
答えて
それは私には完全に合理的です。あなたはif(parent_id = if params...
)の前に課題を移動したり、3値を使うことができますが、結果が良く見えるとは思いません。
PARENT_IDは、あなたは、単に書くことができ、その行の前にゼロまたは未定義の場合:
parent_id = params[:parent_id] unless params[:parent_type] == "Order"
それで本当に何も間違って-ですが、より簡潔に行うことができます。私はそれはそれは方法罰金だと思います
parent_id = if (params[:parent_type] == "Order")
nil
else
params[:parent_id]
end
:また
parent_id = (params[:parent_type] == "Order") ? nil : params[:parent_id]
。私はRubyの人です。そのように書くのはあなたを笑っていません。コードが何をしているのかは明らかですし、実際のコードの重複はないので、私はそれについて心配しません。
私もここに同意します... –
私が好き:
parent_id = (params[:parent_type] == "Order" ? nil : params[:parent_id])
もう一つのバリエーション:
parent_id = (params[:parent_type] == "Order") && params[:parent_id]
非常に表現的な方法ではありません。実際には論理演算子がブール値を返さないという事実をかなり混乱させます... – luca
我々はルビーを使用することができます三項演算子。そのような何か:あなたはそれをしなかった別の方法で簡単なルビーのif-elseを
parent_id = params[:parent_id] unless params[:parent_type] == "Order"
または書き込み:parent_id
がnil
値が設定されている
parent_id = params[:parent_type] == "Order" ? nil : params[:parent_id]
場合は、私たちがない限り構文を書くことができます
parent_id = if (params[:parent_type] == "Order")
nil
else
params[:parent_id]
end
詳細については、Idiomatic Rubyのコードについては、awesome articleが見つかりました。
- 1. EAFP対LBYL:どちらがもっと慣れ親しんだRubyですか?
- 2. Goのプロデューサー/コンシューマーの最も慣れ親しんだイディオムは何ですか?
- 3. もっと慣れ親しんでポインタを置き換える方法はありますか?
- 4. PythonのClickを使ってargsのリストを取得する方法はもっと慣れていますか?
- 5. これは悪い習慣です(これは間違っていますか)。
- 6. Scalaで単一要素の繰り返し可能性を表現するのに、最も慣れ親しんだ方法は何ですか?
- 7. `Python`で` dictionary`型のためのスタックを実装するのに最も慣れ親しんだ方法は何ですか?
- 8. これはもっと良い方法ですか?
- 9. は(私はSVNに非常に慣れていないんだけど、それに慣れることをお勧めされています。入場料)コーナーストーン
- 10. 私は慣れ親しんだコンソールコマンドと一緒に使用するテキストエディタ
- 11. PHP/Javascript/Mysqlに慣れ親しんだ人にとって、優れた非Webアプリケーション開発環境とは何ですか?
- 12. clojureで最も長いseqに従ってベクトルをマップする慣用方法は何ですか?
- 13. もし何かすれば、何かをしてください:updateは実際に何かを書きます。
- 14. 何も拡張していないクラスでsuper()を呼び出すことは悪い習慣ですか?
- 15. Rubyでもっときれいなコード
- 16. これは悪い習慣ですか?
- 17. これは私が書こうとしているものです。レールコンソールに書き込む最善の方法は何ですか?
- 18. これはRubyで何を意味していますか?このコードで
- 19. リストスララには何も書かれていません
- 20. Rubyで時間を測定する慣習的な方法は何ですか?
- 21. これはRubyのバグですか、それともRubyの正しい動作ですか?
- 22. .NETでこれを実装する最も良い方法は何ですか?
- 23. WebアプリケーションやWindowsアプリケーションで好きな、あるいは慣れ親しんだ「斬新なユーザーエクスペリエンス」エンジニアリングの良い例は何ですか?
- 24. Ruby。 full_descriptionは、子クラスルームで定義されていても定義されていません。これをどうやって解決するのですか?
- 25. 例外をスローする以外何もしないメソッドを書くのは悪い習慣ですか?
- 26. ファイルにダブルスを書いて、何も書いていないことを教えてください。
- 27. Ruby - ここで何が起こっているのか教えてください
- 28. は、私は、これはオブジェクト参照とは何かを持っているかもしれないという気持ちを持って
- 29. このスカラー法を書く最も良い方法はどれですか?など慣用的なコードを書くの観点から
- 30. PerlやRubyを使ってExcelのセルコメントを抽出する最も良い方法は何ですか?
素晴らしい...これは物事を行うためのルビーの方法です、割り当てが前に行きます。これは、「反対の」理由があるため、同じ規則を逆にすることができます。 –