У меня есть следующий код с функцией «сохранить как черновик», которая должна предотвращать запуск проверки (т. Е. Они должны запускаться только тогда, когда статус не является черновым). Я не знаю, как поднять на это в моих связанных моделей, чтобы сохранить их от проверяемого:Условные проверки Rails ActiveRecord для связанных моделей?
class Proposal < ActiveRecord::Base
belongs_to :user
has_one :primary_presenter, dependent: :destroy
validates :title, presence: true
validates :primary_presenter, presence: true, unless: :draft?
validates :abstract, presence: true, unless: :draft?
validates :description, presence: true, unless: :draft?
accepts_nested_attributes_for :primary_presenter
def draft?
status.draft?
end
end
class Presenter < ActiveRecord::Base
belongs_to :proposal
validates :email, presence: true, unless: :proposal_is_draft?
validates :first_name, presence: true, unless: :proposal_is_draft?
validates :last_name, presence: true, unless: :proposal_is_draft?
validates :title, presence: true, unless: :proposal_is_draft?
def proposal_is_draft?
proposal.status.draft?
end
end
class PrimaryPresenter < Presenter
end
Конечно проблема заключается в том, что presenter.proposal равна нулю, когда запись не была сохранена еще , Я посмотрел на reject_if:: all_blank для вложенных атрибутов, но это не похоже на то, что я хочу, так как я все еще хочу, чтобы запись была создана, даже если она пустая, так что при последующем редактировании запись будет существовать , Также я хочу разрешить частичные представления при сохранении в качестве черновика. Есть идеи?
описание товара wow. очень отступ. – Gaston