5

私はそのプロジェクトモデルを持っていhas_many :tasksます。Rails 3.1にネストされたリソースを追加し、nested_form gemを試して、プロジェクトの編集時にタスクを追加/削除できるようにしました。

以前に別のRails3アプリケーションでnested_formを使用しましたが、正常に機能しましたが、現在はfields_for何もレンダリングされません。

これが私のコードです:

#project.rb
class Project < ActiveRecord::Base

  attr_accessible :nr, :name, :client_id, :project_status_id, :hidden, :active, :description, :tasks_attributes


  has_many :tasks, :dependent => :destroy
  accepts_nested_attributes_for :tasks, :reject_if => lambda { |a| a[:name].blank? }, :allow_destroy => true


end


#task.rb
class Task < ActiveRecord::Base

  belongs_to :project

end

#views/projects/_form.html.erb
<%= simple_nested_form_for @project do |form| %>

  <%= form.input :nr, :label => 'Nr' %>
  <%= form.input :name, :label => 'Name' %>
  <%= form.association :client, :collection => Client.all(:order => 'name'), :prompt => "Choose a Client" %>
  <%= form.input :description, :label => 'Description' %>
  <%= form.input :active, :label => 'Active' %>
  <%= form.input :hidden, :label => 'Hidden' %>
  <div class="task_fields">
    <%= form.fields_for :tasks do |task_form| %>
      <%= task_form.input :name %>
      <%= task_form.input :description  %>
      <%= task_form.input :deadline %>
      <%= task_form.link_to_remove "Remove this task" %>
      <p><%= form.link_to_add "Add a task", :tasks %></p>
     <% end %>
  </div>
  <div class="actions">
    <%= form.button :submit %>
  </div>
<% end %>

と私のルートで:

  resources :posts do 
    resources :comments
  end

しかし、ブラウザでページにアクセスすると、

<div class="task_fields"></div>

空になります。fields_forなどはありません。入れ子になったform.jsが読み込まれ、GEMFILEでをポイントしgem "nested_form", :git => 'https://github.com/fxposter/nested_form.git'ます。どこかで読んだので、simple_formをサポートするためにこれを行う必要があります。また、simple_nested_form_forをnested_form_forのみに変更して効果がないようにしました。

どんな助けでも大歓迎です

4

1 に答える 1

15

ではprojects#new、少なくとも1つのタスクを初期化する必要があります。そうしないと、fields_forパーツに何も表示されません。

# projects_controller.rb
def new
  @project = Project.new
  @project.tasks.new
end

複数のタスクが必要な場合:

n.times { @project.tasks.new } # replace n with the number of tasks needed  
于 2011-12-07T11:00:52.223 に答える