代码之家  ›  专栏  ›  技术社区  ›  astropanic

Rails3 HTML5 jQuery动态添加了嵌套表单、演示者模式?

  •  0
  • astropanic  · 技术社区  · 14 年前

    作业有许多任务,任务有许多注释

    这样的表单应该是什么样子?使用分部,这样我就可以从/jobs/new输入整个作业,并从/jobs/2/tasks/new添加新任务,还可以从中添加注释,当然还可以从/jobs/2/tasks/5/notes/new添加新注释?

    这里是使用演示者模式的好地方吗?什么时候可以,我应该使用哪个库? 我在Github上尝试过Active_Presenter的Rails3分支,但是我在表单部分遇到了一些问题。

    有人能为这项任务树立好榜样吗?

    有很多演示者教程、嵌套表单教程和不引人注意的JavaScript教程,但不止一个都解释了所有这些。

    如果有人使用HTML5和Rails3示例粘贴教程,那就太好了。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Bo Jeanes    14 年前

    实际上,演示者模式不一定是最适合这里的。

    你可能会因为使用 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
    

    然后以你的形式做一些像(哈姆语)的事情:

    = 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次)。