【问题标题】:Template Missing Rails模板缺少导轨
【发布时间】:2012-08-02 21:45:50
【问题描述】:

我有 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。我做错了什么?我相信我应该使用accepts_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

【问题讨论】:

  • 找不到视图部分时会出现缺少模板错误。需要更多信息...保存图书信息后...应该去哪里? ...数据是否存储在 3 个表中?
  • 数据被存储到 2 个表中,book 用于描述,book_manager 知道它是否可见
  • 所以保存后你没有重定向到任何视图...这就是问题...添加redirect_to :action => index

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


【解决方案1】:

嗯,大多数情况下,在成功创建后,您应该 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

例如在视图中以绿色显示&lt;%= flash[:info] %&gt; :)

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我对他的问题是他只能降到2模型,3模型深度也一样吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 2013-02-04
    相关资源
    最近更新 更多