コントローラの1つで「新しい」アクションにアクセスすると、「NilClass:Classの未定義のメソッド`model_name'」という恐ろしいエラーが発生します。/ works/newにアクセスするとエラーが発生します。ユーザーhas_manyWorks。これが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を作成するように指示していないので、これがエラーの原因であると感じています。これが問題であると仮定して正しいですか?もしそうなら、どうすれば上記のループを修正できますか?