Rails错误说无法找到某个部分模板,但我没有定义任何

时间:2015-03-19 06:31:52

标签: ruby-on-rails haml partials cocoon-gem

使用better_error gem,我收到以下错误

Missing partial recipes/_ingredient_fields, application/_ingredient_fields with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :haml, :jbuilder]}.

它说它无法在食谱下找到我的 _ingredient_fields.html.haml 文件,但我没有创建这样的文件。我确实创建了另一个名为 _ingredients_fields.html.haml 的部分,并且在代码中使用了它。

= simple_form_for @recipe, html: {multipart: true} do |f|

    # some other code here....

    .row
        .col-md-6
            %h3 Ingredients
            #ingredients
                = f.simple_fields_for :ingredients do |ingredient|
                    = render 'ingredients_fields', f: ingredient
                .links
                    #complaining about this line, but i did not use any partial in this line.
                    = link_to_add_association "Add Ingredients", f, :ingredients, class: "btn btn-default add-button"
    = f.button :submit, class: "btn btn-primary"

被困了一段时间,我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

假设上面的 _ingredients_firelds.html.haml 是一个拼写错误,那么你在/ views / recipes /下有一个名为_ingredients_fields.html.haml的文件,尝试将recipes文件夹添加到这样的路径:

= render '/recipes/ingredients_fields', f: ingredient

您的代码中也可能出现拼写错误。

编辑:啊,我看到你正在使用茧宝石。因此,将_ingredients_fields.html.haml重命名为ingredient_fields.html.haml。 Coocon希望你有一个Ingredient模型类,所以在这里使用单数。

答案 1 :(得分:0)

要回答我自己的问题,我只能使用_ingredient_fields.html.erb作为我的部分名称。我尝试了很多其他变体,并且所有变体都会返回错误。我能想出的唯一解释是,它是内置于茧宝石中的。