1

特定のブロックに値が存在することを確認し、存在する場合はその内容を表示し、存在しない場合は「これにはまだ何もありません」と表示しようとしているだけです。私は他の SOの投稿を調査しましたが、私の実装はオフになっている必要があります.

<% @profiles.each do |profile| %>
  <%= profile.current_club %>
  <% if profile.listings %>
    <%= video_thumb_embed(profile.listings.last.video).html_safe %>
  <% end %>  
<% end %>
  • ビデオは、リスト モデルの属性です。
  • すべてのユーザー プロファイルをインデックス ページに表示し、このインデックス ページに追加された最新のビデオを表示しようとしています。
  • ユーザーがリストを追加していない場合はエラーになるので、各ブロックで簡単なチェックと思われるものを追加しましたが、以下でエラーになります

    nil:NilClass の未定義メソッド「video」

ここで何が理解できませんか?上記の場合、プロファイルがある場合はビデオを含むインデックス ページにプロファイルが表示され、ない場合は何も表示されないと予想されます。

4

1 に答える 1

3

profile.listings が空白または空でないことを確認します。last空の配列でメソッドを呼び出すと、 nil が返されます。

<% if profile.listings %>true空の配列があっても返されます。

<% if !profile.listings.blank? %>または<% unless profile.listings.blank? %>トリックを行う必要があります。

于 2013-07-07T02:09:19.333 に答える