ruby-on-rails - 声明关联对象是否存在 - Ruby

标签 ruby-on-rails ruby if-statement

我想根据关联对象是否存在来调整我的 View 。目前我的观点是这样的

<% @tournaments.each do |t| %>
  <h3 class="gallery-header">
    <%= t.name %>
    <span class="toggle"></span>
  </h3>
  <div class="gallery-row section-body">
    <ul class="team-gallery">
      <% t.gallery_images.paginate(:page => params[:page], :per_page => 6).each do |g| %>
        <li>
          <%= link_to image_tag(g.photo.url(:gallery_small)), g.photo.url(:original), class: 'clb-photo' %>   
        </li>
      <% end %>
    </ul>
      <a href="galleries.html" class="button button-widget">View All</a>
   </div>
<% end %>

模型关联是

class Tournament < ActiveRecord::Base
  has_one :gallery, dependent: :destroy
  has_many :gallery_images, :through => :gallery, dependent: :destroy
end

class GalleryImage
  belongs_to :gallery
end

所以我虽然可以使用 if block ,但是当没有 gallery_images 分配给锦标赛时,我没有得到“Images to follow”文本

<% @tournaments.each do |t| %>
  <h3 class="gallery-header">
    <%= t.name %>
    <span class="toggle"></span>
  </h3>
  <div class="gallery-row section-body">
    <% if t.gallery_images %>
    <ul class="team-gallery">
      <% t.gallery_images.paginate(:page => params[:page], :per_page => 6).each do |g| %>
        <li>
          <%= link_to image_tag(g.photo.url(:gallery_small)), g.photo.url(:original), class: 'clb-photo' %>   
        </li>
      <% end %>
    </ul>
      <a href="galleries.html" class="button button-widget">View All</a>
    <% else %>
      <ul class="team-gallery">
       <li>IMAGES TO FOLLOW</li>
      </ul>
     <% end %>
   </div>
<% end %>

我显然以错误的方式看待这个问题,请大家指教

谢谢

最佳答案

试试 .any?命令。

<div class="gallery-row section-body">
  <% if t.gallery_images.any? %> 
    # content
  <% else %>
    <ul class="team-gallery">
      <li>IMAGES TO FOLLOW</li>
    </ul>
  <% end %>
</div>

关于ruby-on-rails - 声明关联对象是否存在 - Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23611022/

相关文章:

python - append 到选择列表的功能

ruby-on-rails - 在 Ruby on Rails 中从 JSON 制作表格?

ruby-on-rails - 我如何使用具有方法 : :post? 的 Capybara click_link

ruby - 构建 Ruby 并指定 OpenSSL 目录

javascript - 使用 jQuery 通过 $(window).width() 进行响应式设计?

java - 如何分配在 if else 语句中定义的变量

jquery - 如何使我的 div ID 在 Rails 中可变?

iphone - 设计 Omniauth 和 Iphone/Android 应用程序

jquery - rails 4- 401未经授权的错误处理

ruby-on-rails - sidekiq 将类作为参数发送会导致 stacklevel 太深错误