0

ジョブには多くのタスクがあり、タスクには多くのメモがあります

そのようなフォームはどのように見えるべきですか?パーシャルを使用すると、/ jobs / newからジョブ全体を入力し、/ jobs / 2 / tasks / newから新しいタスクを追加して、そこからメモを追加できます。もちろん、/ jobs/2から新しいメモを追加することもできます。 / tasks / 5 / notes / new?

これはプレゼンターパターンを使用するのに適した場所ですか?はいの場合、どのライブラリを使用する必要がありますか?githubでactive_presenterのrails3ブランチを試しましたが、フォームの部分で問題が発生しました。

誰かがそのようなタスクの良い例を持っていますか?

プレゼンターチュートリアル、ネストされたフォームチュートリアル、控えめなJavaScriptチュートリアルはたくさんありますが、すべてを一緒に説明しているのは1つだけではありません。

誰かがhtml5とrails3の例を使ってチュートリアルを貼り付けたらいいのにと思います

4

1 に答える 1

0

実際、プレゼンターのパターンが必ずしもここに最適であるとは限りません。

使用するだけで、おそらくさらに先に進むでしょう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つの空白のタスクを作成するような3.times { @job.tasks.build }ことを行います(したがって、タスクサブフォームを3回表示します)。

于 2010-09-28T13:20:34.083 に答える