Я вызвал функцию из класса, чтобы найти все элементы, связанные с конкретным идентификатором, в отношении многих отношений HABTM.
Процедуры → Задачи с таблицей соединений: procedure_tasks
Я вызываю информацию как @example = Procedure.get_tasks (1,1)
Я хотел бы иметь возможность перебирать возвращаемые данные, чтобы я мог создать экземпляр каждого task_id, относящегося к рассматриваемой процедуре
def self.get_tasks(model_id, operating_system_id)
find(:first, :select => 'tasks.id, procedures.id', :conditions => ["model_id = ? AND operating_system_id = ?", model_id, operating_system_id], :include => [:tasks])
end
Я попытался выполнить данные как обычно, а затем использовать .each do | f | в слое представления, но я получаю:
undefined method `each' for #<Procedure:0x2b879be1db30>
Оригинальный вопрос:
Я создаю приложение rails для отслеживания процессов, которые мы выполняем. Когда создается новый экземпляр процесса, я хочу автоматически создавать строки для всех задач, которые необходимо выполнить. таблицы:
процедуры → задачи много для многих через таблицу join_tasks join.
когда вы начинаете новый процесс снятия с эксплуатации, вы указываете модель и ОС, модель и ОС определяют, какую процедуру вы следуете, каждая процедура имеет список задач, доступных в таблице соединений. Я хочу создать запись в host_tasks для каждой задачи, относящейся к процедуре, относящейся к создаваемой отмене.
Я делал это в течение нескольких дней, любые предложения?
class Procedure < ActiveRecord::Base
has_and_belongs_to_many :tasks
#has_many :tasks, :through => :procedures_tasks
# has_many :procedures_tasks
belongs_to :model
belongs_to :operating_system
validates_presence_of :name
validates_presence_of :operating_system_id
validates_presence_of :model_id
def self.get_tasks(model_id, operating_system_id)
find(:first, :select => 'tasks.id, procedures.id', :conditions => ["model_id = ? AND operating_system_id = ?", model_id, operating_system_id], :include => [:tasks])
end
end
метод get_tasks будет получать задачи, связанные с этой процедурой, но я не знаю, как манипулировать данными, вытащенными из базы данных в rails, я не смог получить доступ к атрибутам возвращаемого объекта через контроллер потому что они еще не были представлены?
В идеале я хотел бы иметь возможность форматировать эти данные, чтобы у меня был только массив task_id, который затем можно прокрутить, создав новые строки в соответствующей таблице.
Это не было циклом, потому что я использовал первый параметр при поиске данных. Я изменил его на: все, что позволило мне .each do | f | и др.
Не самый лучший вариант, но в любом случае будет только один вариант, поэтому он не вызовет проблемы.