0

我有3个模型一个

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

当客户进入 customer#edit 时,然后将表单 book 和 book_managers 呈现为一个表单

在我的 bookController 中,我有以下内容来创建一本书和 book_manager

class BooksController < ApplicationController
    def create
        @customer = current_customer
        @book = @customer.book_managers.build(:visible => "true")
        @book = @customer.book_managers.first.books.build(:description => "2012")
    end
end

但后来它告诉我缺少模板。我也只使用了一个简单的 form_for。我做错了什么?我相信我应该使用 Accept_nested_attributes_for 但任何人都有一个很好的教程?

更新:关于这里的铁路广播,我的关系,看看它是否有意义?

Customer
    has_many :book_managers
        has_many :books, :through => :book_managers
    accepts_nested_attributes_for :book_manager
Book
    belongs_to :book_manager
    def customer
        book_manager.customer
    end
Book_Manager
    belongs_to :customer
    has_many :books
    accepts_nested_attributes_for :book
4

2 回答 2

0

好吧,大多数情况下,在成功创建后,您redirect_to的编辑或列表页面应该会显示成功消息 ( flash[:info] = "Success")。

所以你应该有

def create
    @customer = current_customer
    @book = @customer.book_managers.build(:visible => "true")
    @book = @customer.book_managers.first.books.build(:description => "2012")
    flash[:info] = "Success"
    redirect_to :some_action
end

例如在绿色视图中显示<%= flash[:info] %>:)

于 2012-08-02T13:40:56.097 回答
0

看看这些 railscasts http://railscasts.com/episodes/196-nested-model-form-part-1http://railscasts.com/episodes/197-nested-model-form-part-2。他们将向您展示正确实现嵌套表单的方法。

于 2012-08-02T13:41:33.743 回答