Как вызвать атрибут из массива класса - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь создать метод, который получает дату и добавляет к ней указанное количество дней.

В настоящее время я не могу назвать указанные дни.

У меня есть класс Plant, у которого есть _many DaysTillSellables, а у класса Period есть также_DysTillSellable.

Когда пользователь создает завод, он может добавить DaysTillSellables, а затем выбрать период и затем ввести количество дней.

Сначала мне нужно проверить, в каком периоде находится дата, а затем вернуть этот период. В настоящее время пытается, как так

def current_period
    return unless completed_at_week.between?(period.start_week, period.finish_week)
    index_days_till_sellables_on_period_id
  end

Затем найдите дни до продажи, которые связаны с этим периодом, и, наконец, назовите дни с этого

Ниже приведен код класса, который я пытаюсь вызвать в

 class Potting < ApplicationRecord
  belongs_to :batch, inverse_of: :pottings
  validates :plant_count, :completed_at, presence: true

  enum germination_result: { light: 0, medium: 1, full: 2 }

  def pottings_completed_at
    "Week #{completed_at.strftime('%U').to_i}/#{completed_at.strftime('%Y').to_i}"
  end

  def completed_at
    super || Time.zone.today
  end

  def completed_at_week
    completed_at.strftime('%U')
  end

  def current_period
    return unless completed_at_week.between?(period.start_week, period.finish_week)
    index_days_till_sellables_on_period_id
  end

  def period_days
    plant.days_till_sellables.find_by(period: :current_period).&current_period.days
  end

  def ready_for_sale
    completed_at + period_days
  end
end

Я добавил больше кода ниже, чтобы улучшить контекст для классов

class DaysTillSellable < ApplicationRecord
  belongs_to :period, inverse_of: :days_till_sellables, foreign_key: :period_id
  belongs_to :plant, inverse_of: :days_till_sellables, foreign_key: :plant_id
  validates :days, presence: true
end

.

class Period < ApplicationRecord
  has_many :days_till_sellables, dependent: :destroy, inverse_of: :period
  belongs_to :organization

.

class Plant < ApplicationRecord
  has_many :batches, dependent: :destroy
  has_many :goals, dependent: :destroy
  has_many :days_till_sellables, dependent: :destroy, inverse_of: :plant
  belongs_to :organization
  accepts_nested_attributes_for :days_till_sellables, allow_destroy: true
  validates :genus, :species, :period_id, presence: true
end

1 Ответ

0 голосов
/ 03 мая 2018

Я думаю, что вы ищете:

class Potting
  belongs_to :plant, through: :batch
  ...
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...