#<Set: {}> 的未定义方法“model_name”

undefined method `model_name' for #<Set: {}>

尽管 SO 上存在一些类似的问题,但我终生无法修复此错误。我设置表单的方式与我在同一个应用程序中设置其他表单的方式相同。我只是想建立一个简单的基本锻炼日志。我以前从未 运行 遇到过这个错误,希望其他人能发现明显的问题

我的集合文件夹中有一个名为 _form.html.erb

的部分
<%= bootstrap_form_for @set do |f| %>
<%=f.text_field :number %>
<%=f.text_field :weight %>
<%=f.text_field :reps %>
<%=f.submit "Enter Set" %>
<% end %>

new.html.erb(似乎渲染良好)

<div class="create-sets">
  <%= render 'sets/form' %>
</div>

设置控制器

class SetsController < ApplicationController


  def new
    @set = Set.new
  end

  def create
    @set = Set.new(set_params)
      if @set.save
        flash[:notice] = "Set saved"
        redirect_to @set
      else
        redirect_to @set
      end
  end

  def edit
  end

  def show
  end 



  private

  def set_params
    params.require(:set).permit(:number, :weight, :reps)
  end

end

这看起来很基本并且在过去一直有效,所以我在这里真的很茫然。好像模型集由于某种原因无法正常工作。我也检查了我的迁移,并确保数据库存在以防万一我可能忘记了并且一切似乎都已检查完毕。帮助将不胜感激 here.Thanks

这似乎是您的 Set class 和 ruby 标准库 Set class 之间的命名冲突。最简单的方法是重命名您的 class.