rails3 html5 jquery динамически добавленные вложенные формы, шаблон презентатора? - PullRequest
0 голосов
/ 28 сентября 2010

Работа имеет много задач, задача имеет много заметок

Как должна выглядеть такая форма? С партиалами, поэтому я могу ввести всю работу из / jobs / new и добавить новые задачи из / jobs / 2 / tasks / new с возможностью добавления заметок оттуда и, конечно, возможностью добавления новых заметок из / jobs / 2 / tasks / 5 / notes / new?

Это хорошее место для использования шаблона презентатора? Когда да, какую библиотеку мне использовать? Я пробовал ветку rails3 active_presenter на github, но у меня были некоторые проблемы с партиалами формы.

У кого-нибудь есть хороший пример для такой задачи?

Существует множество учебных пособий для докладчиков, учебных пособий по вложенным формам и ненавязчивых учебных пособий по javascript, но не только один из них объяснил все вместе.

Было бы неплохо, если бы кто-нибудь вставил учебник, используя примеры html5 и rails3

1 Ответ

0 голосов
/ 28 сентября 2010

Шаблон презентатора здесь не обязательно подходит лучше всего.

Вы, вероятно, получите еще больше, просто используя accepts_nested_attributes_for:

# Models
class Job < ActiveRecord::Base
  has_many :tasks, :autosave => true
  accepts_nested_attributes_for :tasks
end

class Task < ActiveRecord::Base
  belongs_to :job
  has_many :notes, :autosave => true
  accepts_nested_attributes_for :notes
end

class Note < ActiveRecord::Base
  belongs_to :task
end

А затем в своей форме выполнитечто-то вроде (в HAML):

= form_for @job do |job|
  = job.text_field :name # or whatever your Job attributes are
  = job.fields_for :tasks do |task|
    = task.text_field :name
    = task.check_box_field :complete
    = task.fields_for :notes do |note|
      = note.text_field :body
  = job.submit "Create Job"

Возможно, вам придется инициализировать некоторые задачи / заметки для новых заданий, или связанные формы записей могут не отображаться.Например, сделайте что-то вроде 3.times { @job.tasks.build }, чтобы создать 3 пустых задания (и, следовательно, отобразить форму задачи 3 раза).

...