【发布时间】:2013-02-27 03:54:25
【问题描述】:
当我访问我的一个控制器的“新”操作时,我遇到了可怕的错误:“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 在创建新工作时考虑到用户关系。假设这是问题所在,我是否正确?如果是这样,我该如何解决上述循环?
【问题讨论】:
-
您说您正在使用“以下循环”,但我没有看到循环。您是忘记粘贴一些代码还是您的意思是“阻止”?
-
对不起,你是对的。我的意思是输入“block”!
标签: ruby-on-rails class methods ruby-on-rails-3.2