Я встретился с несколько аналогичной ситуацией в исследовательской группе, в которой я в настоящее время работаю. Это - группа биофизики, и мы используем LabVIEW повсеместно для управления нашими инструментами. Это абсолютно работает отлично: легко собрать UI, чтобы управлять всеми аспектами Ваших инструментов, просмотреть его состояние и сохранить Ваши данные.
И теперь я должен мешать мне писать напыщенную речь на 5 страниц, потому что для меня LabVIEW был кошмаром. Позвольте мне вместо этого попытаться суммировать некоторые за и против:
Правовая оговорка я не эксперт LabVIEW, я мог бы сказать вещи, которые смещаются, устаревшие или просто неправильно:)
(Последние две точки делают работу в команде на одном проекте трудной. Это, вероятно, важно в Вашем случае)
Что касается Ваш "должны я писать свои собственные модули" вопрос: я не уверен. Зависит от Ваших ограничений времени. Не проводите время при перестраивании колеса, если Вы не имеете к. Слишком легко провести дни на запись, что низкий уровень кодирует и затем понимает, что у Вас закончилось время. Если это означает выбор LabVIEW пойдите для него.
, Если были бы простые способы объединить LabVIEW и, например, C++, я хотел бы услышать об этом: это может дать Вам лучший из обоих миров, но я сомневаюсь, что существует.
, Но удостоверяются, что Вы и Ваша команда проводите время при изучении лучших практик. Рассмотрение кода друг друга. Изучение друг от друга. Запись применимого, понятного кода. И весело проведение время!
И простите мне за звучание острым и возможно несколько педантичным. Это просто, что LabVIEW был реален кошмар для меня:)
В классе ApplicationForm вам необходимо указать связь ApplicationForms с 'form_questions'. Он еще не знает об этом. Везде, где вы используете : до
, вам нужно сначала указать, где найти эту запись. Та же проблема с другими вашими классами.
Итак,
# application_form.rb
class ApplicationForm < ActiveRecord::Base
has_many :form_questions
has_many :questions, :through => :form_questions
end
# question.rb
class Question < ActiveRecord::Base
belongs_to :section
has_many :form_questions
has_many :application_forms, :through => :form_questions
end
# form_question.rb
class FormQuestion < ActiveRecord::Base
belongs_to :question
belongs_to :application_form
belongs_to :question_type
has_many :form_questions_answers
has_many :answers, :through => :form_question_answers
end
Предполагается, что вы так настроили.
Вам необходимо включить
has_many :form_question_answers
в вашу модель FormQuestion. : Through ожидает таблицу, которая уже была объявлена в модели.
То же самое и для других ваших моделей - вы не можете предоставить ассоциацию has_many: through
, пока не объявите сначала ] has_many
# application_form.rb
class ApplicationForm < ActiveRecord::Base
has_many :form_questions
has_many :questions, :through => :form_questions
end
# question.rb
class Question < ActiveRecord::Base
belongs_to :section
has_many :form_questions
has_many :application_forms, :through => :form_questions
end
# form_question.rb
class FormQuestion < ActiveRecord::Base
belongs_to :question
belongs_to :application_form
belongs_to :question_type
has_many :form_question_answers
has_many :answers, :through => :form_question_answers
end
Похоже, ваша схема может быть немного нестабильной, но дело в том, что вам всегда нужно сначала добавить has_many для таблицы соединения, а затем добавить сквозную.