unless @client.nil?
TestMailer.snap_shot_error("test1","Errors",
{:file_name => File.basename(upload_file),:client_name => @client.client_name})
else
TestMailer.snap_shot_error("test1","Errors",
{:file_name => File.basename(upload_file))
end
def snap_shot_error(to_address,subject,options={})
# code
end
<% if @client_name %>
<%= _("There were problems with file ") + @file_name + _(" for client ") + @client_name %>
<% else %>
<%= _("There were problems with file ") + @file_name %>
<% end %>
1
A
答えて
3
これらのクエストインの両方で、3項演算子を使用できます。
condition ? value_if_true : value_if_false
これは式(別の値を生成する値と演算子のシーケンス)です。条件が真であるか偽であるかを判定し、条件が真である場合は最初の値(?の後と:)の前に評価され、条件が偽である場合は、次の値(=
だから、あなたが投稿最初のコード例のために、あなたがこれを行うことができます:
TestMailer.snap_shot_error("test1", "Errors",
:file_name => File.basename(upload_file),
:client_name => @client ? @client.client_name : nil)
を[私はオプションの周りの中括弧を削除したことに注意してください - Rubyで最終的に必要がありませんオプションには、ハッシュ、]
それとも何らかの理由であなたもゼロたくない場合は、それらをオフに残すために慣用的である:
TestMailer.snap_shot_error("test1", "Errors",
{:file_name => File.basename(upload_file)}.merge(
@client ? { :client_name => @client.client_name } : {}))
:ハッシュでCLIENT_NAMEを、あなたは三項演算子とマージを使用することができますが
ビューのために、あなたはまた、三項演算子を使用することができます:あなたはそれもしてはならないことを要求した理由
<%= _("There were problems with file ") + @file_name +
(@client_name ? _(" for client ") + @client_name : '') %>
そして今、私はあなたが@client_nameでやっているものを見ることを、私は表示されませんハッシュ。私が投稿した最初のコード例は、 ":client_name => @ client.client_name"にクライアントがあり、クライアントがなければ ":client_name => nil"を渡します。パスしない理由は何もありません:client_nameは、単にnil:client_nameを渡すのではなく、client_nameです。
関連する問題
- 1. TFS 2008プロジェクトファイルの不適切な状態
- 2. プレゼンターレイヤーに適切なアンドロイドユニットテストを書く方法
- 3. 初期化関数を書く適切な方法
- 4. フラグメントからのインスタンス状態の適切な使用
- 5. 設定トラッキング状態を呼び出す適切な場所
- 6. IF文を書く最適な方法
- 7. 適切な方法
- 8. 適切な方法
- 9. 適切な方法
- 10. 適切なヌル安全な結合演算子をスカラーに書く方法は?
- 11. オブジェクトの状態/内容を適切に変更するイテレータの使用法(php)
- 12. コーディングの適切な方法
- 13. Reactの状態と小道具を扱う適切な方法は何ですか
- 14. 休止状態で条件を使用して文節を書く方法
- 15. 適切な方法ビューモデル親
- 16. 適切な方法は、
- 17. 適切な方法は、
- 18. クラスに適切な説明メソッドを書き込む方法は?
- 19. Meteorアプリケーションのサーバー状態とユーザー、状態の作成方法は?
- 20. C#で状態マシンを書き込む方法は?
- 21. ステートマシン:外部イベントなしで状態を変更する方法(過渡状態)?
- 22. この適切なリンクリストを作成する方法
- 23. このREST URIを構築する適切な方法は?
- 24. .NET/C# - ここで適切な使用方法 - LINQ
- 25. タイムドリダイレクトのための適切な方法
- 26. 休止状態のJDBCトランザクションを休止状態のトランザクションから切り離す
- 27. IoCコンテナを渡す適切な方法
- 28. C言語でpcreに適切なパターンを書くには
- 29. これをシェルスクリプトにする適切な方法
- 30. JSTL:BigDecimalの絶対値(適切な方法...)
私はオプションでclient_nameキーを渡したくありません。 @clientが利用できない場合 –
@krunal shah、私は実際にその可能性について説明するために自分の投稿を更新しました。アップデートを参照してください。 –
お返事ありがとうございます。私の見解で同じ問題を解決するにはどうすればいいですか?私は私の質問を更新しました。 –