1

空白に戻ってきたオブジェクトがあります。これが私がやりたいことです

@photo = [] # this is coming back blank, but it won't do the correct comparison in the ||
@sanitized_photos = PhotoPresenter.new(@photo).to_json || PhotoPresenter.default_layout.to_json

力強いifステートメントなしでそれを機能させる方法についての考え

更新:::これは私のプレゼンターのコピーで、かなりうまく機能します。ここにコレクションロジックを配置したことはわかっていますが、最もクリーンな方法で機能します

class PhotoPresenter < Presenter

  def initialize(photo)
    @photo = photo
  end

  def to_gallery
    {
      "thumb" => @photo.image.url(:thumb),
      "image" => @photo.image.url(:large),
      "big" => @photo.image.url,
      "title" => @photo.attachable.name
    }
  end

  def self.blank_gallery
    {
        "thumb" => help.polymorphic_photo_url(nil, :large),
        "image" => help.polymorphic_photo_url(nil, :large),
        "big" => help.polymorphic_photo_url(nil, :large),
        "title" => "No photo provided"
      }
  end

  def self.as_gallery(photos)
    unless photos.blank?
      photos.collect{|object| self.new(object).to_gallery}.to_json
    else
      blank_gallery.to_json
    end
  end

end
4

1 に答える 1

0
@sanitized_photos = @photo.any? ? PhotoPresenter.new(@photo).to_json : PhotoPresenter.default_layout.to_json

そうは言っても、このロジックをPhotoPresenterクラスの初期化子に移動する方がはるかに優れています

于 2012-05-09T22:07:38.220 に答える