2013-07-07 69 views
1

我只是試圖確保某個塊中存在一個值,並顯示它的內容(如果有的話),如果沒有顯示「Nothing for this yet yet」。我研究過otherSO posts但我的實施必須關閉。困惑於無導軌視圖

<% @profiles.each do |profile| %> 
    <%= profile.current_club %> 
    <% if profile.listings %> 
    <%= video_thumb_embed(profile.listings.last.video).html_safe %> 
    <% end %> 
<% end %> 
  • 視頻是上市模型的屬性。
  • 我試圖顯示索引頁面上的所有用戶配置文件,並顯示他們已添加在此索引頁上的最新視頻。
  • 它的錯誤了,如果用戶沒有添加的列表,所以我說什麼,我認爲將是在每個塊一個簡單的檢查,但它的錯誤了與下面

    未定義的方法'視頻」的零: NilClass

我在這裏不理解什麼?有了上面的內容,我希望一個配置文件會顯示在索引頁面上,如果它有一個視頻,並且它沒有顯示任何內容。

+0

您的錯誤表明'profile.listings.last'爲零。嘗試輸出'profile.listings'來確保你有一個列表數組。 – Huy

+0

我可以確認輸出'profile.listings'會給出'[]'。好的,如果用戶還沒有添加列表,那麼數組將是空的。這是否意味着我只是檢查數組是否有任何元素,我的支票將按預期工作? –

+0

是的,你只需要將'if profile.listings'改爲'if!profile.listings.blank?' – Huy

回答

3

您想要檢查並確保profile.listings不爲空或爲空。如果在空數組上調用last方法,則返回nil。

<% if profile.listings %>即使您有一個空數組,也會返回true

<% if !profile.listings.blank? %><% unless profile.listings.blank? %>應該做的伎倆。

+0

完美,我只是爲了自己的可讀性目的而使用'.empty?'。謝謝你說出來。一切正常。 –

+0

沒問題,很高興我能幫到你。 – Huy