当我访问我的一个控制器的“新”操作时,我收到了可怕的错误:“NilClass:Class 的未定义方法 `model_name'”。当我访问 /works/new 时发生错误。一个用户 has_many 作品。这是 Works 控制器:
class WorksController < ApplicationController
  def index
    @works = Work.all
respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml => @works }
end
def create
@work = current_user.works.build(params[:works])
    if @work.save
      redirect_to root_url
    else
      render 'home'
    end
  end
def new
  @work = Work.new
end
def destroy
  @work.destroy
  redirect_to root_url
end
end
  def show
    @work = Work.find(params[:id])
    @user = User.find(params[:id])
    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @work }
    end
  end
end
在 new.html.erb 视图文件中,我使用以下循环创建表单,以便提交填写的字段将为用户创建新的工作记录:
 <%= form_for(@work) do |f| %>
我有一种感觉,这是错误的根源,因为我没有告诉 Rails 创建新的 Work 时要考虑到用户关系。我是否正确假设这是问题所在?如果是这样,我该如何解决上述循环?