如果nested_attributes为空,则在Rails模型中隐藏记录

时间:2014-10-09 02:04:37

标签: ruby-on-rails ruby ruby-on-rails-4 model nested-attributes

我的Rails应用中有两个模型:ListingListingPhoto。我想在我的模型上设置某种范围,删除没有嵌套Listing的{​​{1}}。这些是从外部API引入的,所以我没有简单的方法来控制这些保存。

ListingPhoto看起来像这样:

Listing

class Listing < ActiveRecord::Base acts_as_taggable_on :listing_types has_many :listing_photos accepts_nested_attributes_for :listing_photos, allow_destroy: true private end 看起来像这样:

ListingPhoto

我需要添加到class ListingPhoto < ActiveRecord::Base belongs_to :listing validates :listing, presence: true mount_uploader :photo, PhotoUploader end 模型中以停止显示空照片集的商家信息?

1 个答案:

答案 0 :(得分:2)

您可以在清单模型中添加静态方法:

def self.with_photos
    includes(:listing_photos).where.not(:listing_photos => {:listing_id => nil})
end

然后只需轻松致电:

Listing.with_photos