2017-07-10 10 views
0

私はRailsの - アクティブなレコードが空でないかどうかをチェックし、それに関係呼び出す

@applications.first.job 
をすれば、私はセットアップを持っている関係を使用して次の文

@applications = Job.find(params[:job_id]).job_applications 

を使用してデータベースからデータをフェッチしています

これは私に仕事を与える、アプリケーションはリンクされています。

私は以下のコードを持っていますが、これは@applicationsが空の場合に失敗します。

<% if [email protected] %> 
    <div class="alert alert-warning"> 
     <p>No procedure has been assigned to this job.</p> 
    </div> 
    <% end %> 

if文@applicationsあなたは関連があるかどうかを確認することができ、空

答えて

1

でない場合にのみ実行されますので、どのように私は上記を更新することができます。..

<% if @applications.blank? || @applications.first.job.try(:procedure).blank? %> 
    <div class="alert alert-warning"> 
    <p>No procedure has been assigned to this job.</p> 
    </div> 
<% end %> 

OR 1ライナー、少し醜いしかし

@applications.try(:first).try(:job).try(:procedure).blank? 
+0

多くのおかげで、私は1つのライナーを探していた2つのif文を追加する – Saadia

+1

特に、オブジェクトのメソッドだけでなく、関連付けを連鎖させる場合には、tryはあまり効果がありません。この質問を参照してくださいhttps://stackoverflow.com/questions/26655032/try-vs-performance – jaydel

+0

その洞察力のためのAhaa..thanx ...それがほぼ3倍であることを知って驚いています。 –

関連する問題