Как проверить в модели данные с контроллера

Итак, у меня есть некоторые данные, которые извлекаются из другого приложения rails в контроллере, давайте назовем его ExampleController, и я хочу проверить его на наличие в моей модели, прежде чем позволить мастеру перейти к следующему шагу, и я могу 'не могу понять, как я должен это делать (Я знаю, что получение этих данных непосредственно из контроллера в модель нарушает MVC Я ищу лучший обходной путь для получения моих данных от контроллера) Данные должны поступать из контроллера, так как методы их получения содержатся в ApplicationController, однако я мог бы сделать это в контроллере Awizard, если это проще. (Также я не могу использовать драгоценный камень)

Пожалуйста, предложите какое-то предположение к проблеме, а не объяснение того, почему это неправильный способ делать то, что я уже понимаю, но не могу сделать это по-другому.

Пример контроллера

если это вместо того, чтобы визуализировать данные, то проверьте, нет лив другом месте?

class ExampleController < ApplicationController

  def valid_data?            
    data = #data could be nil or not
    if data.blank?
      return false
    else
      return true
  end

end

Моя модель - (models / awizard.rb)

Как мне использовать valid_data? метод из примера контроллера? в моей проверке здесь.

class AWizard
include ActiveModel::Validations
include ActiveModel::Conversion
include ActiveModel::Dirty
include ActiveModel::Naming

#This class is used to manage the wizard steps using ActiveModel (not ActiveRecord)

attr_accessor :id
attr_writer :current_step  #used to write to current step
define_attribute_methods [:current_step] #used for marking change

validate :first_step_data, :if => lambda { |o| o.current_step == "step1" };

def first_step_data
  #What should i put here to check the valid_data? from the examplecontroller
end

def initialize(attributes = {})
   attributes.each do |name, value|
     send("#{name}=", value)
   end
end

def current_step
  @current_step || steps.first
end

def steps
  %w[step1 step2 step3] #make list of steps (partials)
end

def next_step
  current_step_will_change! #mark changed when moving stepped
  self.current_step = steps[steps.index(current_step)+1] unless last_step?
end

def previous_step
  current_step_will_change! #mark changed when moving stepped
  self.current_step = steps[steps.index(current_step)-1] unless first_step?
end

def first_step?
  current_step == steps.first
end

def last_step?
  current_step == steps.last
end

def all_valid?
  steps.all? do |step|
    self.current_step = step
    valid?
  end
end

def step(val)
  current_step_will_change!
  self.current_step = steps[val]
end

def persisted?
  self.id == 1
end

end

Или мне нужно добавить это к этому представлению?

(/Views/awizard/_step1.html.erb)


  <br>
  #This is the step I want to validate

Ответы на вопрос(4)

Ваш ответ на вопрос