Как проверить, является ли вложение новым в ActiveStorage Rails? - PullRequest
0 голосов
/ 28 мая 2019

В моем приложении Rails 5.2.2 я использую Active Storage для подключения logos к profiles:

class Profile < ApplicationRecord

  has_many_attached :logos

end

Как я могу проверить, был ли новый логотип прикреплен к профилю при обновлении?

Сейчас я проверяю параметр logos в моем контроллере, который работает нормально:

class ProfileController < ApplicationController

  def update
    if params[:profile][:logos].present?
      @profile.logo_active = true # This is the important attribute I need to set
    end
    if @profile.update(profile_params)
      flash[:success] = "Profile updated."
      redirect_to profile_path
    end
  end

end

Есть ли способ сделать то же самое в модели , то есть проверить, является ли вложение действительно новым, а затем установить атрибут logo_active в зависимости от этого?

Я играл с методом Rails new_record?, но безрезультатно.

1 Ответ

0 голосов
/ 28 мая 2019

Вы можете проверить, есть ли вложение с помощью

@profile.logos.attached?

https://api.rubyonrails.org/classes/ActiveStorage/Attached/Many.html#method-i-attached-3F

...