4

formtasticとformtastic_cocoonを使用して、ネストされたフォームを作成しています。

1つの例外を除いて、ネストされたフォームを既存のフォームに動的に追加することはすべてうまく機能しているようです。

私にはユーザーがいて、ユーザーにはエントリがあります。

ユーザーを作成してエントリを追加すると、次のようになります。

-ユーザー
   -エントリ(空)
   -エントリーテスト1

私は持っているべきです

-ユーザー
   -エントリーテスト1

空白のエントリが常に表示される理由がわかりません。

私のモデルは

クラスUser<ActiveRecord:: Base
   :name、:presence=>trueを検証します
   has_attached_file:photo

   has_many:tasks、:dependent =>:destroy

   accepts_nested_attributes_for:tasks、:allow_destroy => true

終わり

クラスTask<ActiveRecord:: Base
   attr_accessible:entry

   所属する:user


終わり

私の作成コントローラーは(これが正しいコントローラーだと思います)

  def create
    @user = User.new(params [:user])
    @user.saveの場合
      flash [:notice]="正常に作成されたユーザー。"
      redirect_to @user
    そうしないと
      render:action =>'new'
    終わり
  終わり

 def create
    @task = Task.new(params [:task])
    @task.saveの場合
      flash [:notice]="タスクが正常に作成されました。"
      redirect_to @task
    そうしないと
      render:action =>'new'
    終わり
  終わり

空のエントリがデータベースに表示されているので、html.erbファイルに問題はないと思いますが、それが役立つ場合は、ここに投稿できます。

4

1 に答える 1

1

これは、formtastic_cocoonがフォームを処理する方法に問題がある可能性があることがわかりました。

htmlソースを見ると、ネストされたフォームはページ内にありますが、非表示になっています。

モデルをに変更しました

accepts_nested_attributes_for:tasks、:reject_if =>proc{|属性| attributes [:entry] .blank?}、:allow_destroy => true
于 2011-02-09T19:44:41.970 に答える