嵌套表单轨道

时间:2012-08-02 15:30:24

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我跟踪了来自Railcasts的第196集,但似乎如果我按照他的说法它还没有工作,可能导致代码老了或者我只是没有得到轨道。

这里我有3个模型

Customer        Book                Book_Manager
id              id                  id
first           description         customer_id
last            book_manager_id     visible
email
password

这是我的关系

Book
    belongs_to :book_manager
    def customer
        book_manager.customer
    end
Customer
    has_many :book_managers, :dependent => :destroy
    accepts_nested_attributes_for :book_managers
BookManager
    belongs_to :customer
    has_many :books, :dependent => :destroy
    accepts_nested_attributes_for :books

表格有以下

<%= form_for @bookmanager do |f| %>
  <%= f.fields_for :books do |builder| %>
  <div>
    <%= builder.label :description %><br />
    <%= builder.text_area :description, :rows => 3 %>
  </div>
  <% end %>
  <div class="field">  
    <%= f.label :visible %><br />  
    <%= f.text_field :visible %>  
  </div>  
  <div class="actions">
    <%= f.submit %>
  </div>  
<% end %> 

如果我注释掉该行

accepts_nested_attributes_for :books

它显示了描述框,但是如果我将它放在那里,那么盒子就会消失。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我认为你必须在这里传递书籍对象。尝试

<%= f.fields_for :books, Book.new do |builder| %>