Когда вы отправляете форму, навигатор отправляет новый HTTP-запрос (POST /movies
), который приведет вас к методу создания вашего MoviesController
.Тогда ошибка исходит из этого метода.Дважды проверьте ваш create
метод.
Кроме того, мы обычно делаем что-то подобное в методе создания:
def create
@movie = Movie.new(movie_params)
if @movie.save
redirect_to '/somewhere'
else
render :new
end
end
Если это так, то вы можете render :new
из метода создания.Дело в том, что для представления new.html.erb
требуется переменная @categories
, которая не определяется, если вы исходите из метода create
.Чтобы это исправить, просто создайте переменную @categories
в методе create
:
def create
@movie = Movie.new(movie_params)
if @movie.save
redirect_to '/somewhere'
else
@categories = Category.all.map { |c| [c.name, c.id] }
render :new
end
end
Ваш вопрос не дает достаточного контекста, поэтому я надеюсь, что я нашел правильную проблему (которая наверняка происходит)в фильмах # метод создания, а не фильмы # новый);)