Я получаю ужасную ошибку:« undefined method `model_name» для NilClass: Class «когда я обращаюсь к« новому »действию для одного из моих контроллеров. Ошибка возникает при доступе/works/new. Пользователь has_many Works. Вот контроллер работы:Создание записей для детей: неопределенный метод `model_name 'для NilClass: Class
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» вместо этого! – winston