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

Rails error says cannot find a certain partial template, but I did not define any

使用 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"

卡了一会儿,我哪里做错了?

假设上面的 _ingredients_firelds.html.haml 是错字,所以您在 /views/recipes/ 下有一个名为 _ingredients_fields.html.haml 的文件,尝试添加 recipes 文件夹到这样的路径:

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

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

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

为了回答我自己的问题,我只能使用 _ingredient_fields.html.erb 作为我的部分名称。我尝试了很多其他变体,但都 return 错误。我能想到的唯一解释是,这是内置于茧中的 gem。