0

工作有很多任务,任务有很多笔记

这样的表格应该是什么样子?使用部分,所以我可以从 /jobs/new 输入整个工作,并从 /jobs/2/tasks/new 添加新任务,可以从那里添加注释,当然也可以从 /jobs/2 添加新注释/tasks/5/notes/new ?

这是使用演示者模式的好地方吗?如果是,我应该使用哪个库?我已经在 github 上尝试了 active_presenter 的 rails3 分支,但我在表单部分时遇到了一些麻烦。

有人可以为此类任务提供一个很好的例子吗?

有很多演示者教程、嵌套表单教程和不显眼的 javascript 教程,但不是只有一个教程可以一起解释。

如果有人使用 html5 和 rails3 示例粘贴教程,那就太好了

4

1 回答 1

0

实际上,Presenter 模式不一定最适合这里。

只需使用以下命令,您可能会更进一步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 次)。

于 2010-09-28T13:20:34.083 回答