Когда я заполняю неправильную проверку формы - она вызывает ошибку (экран включен ниже) вместо перенаправления на new_product_path и высвечивает все ошибки. Если я правильно использую форму со всеми пройденными валидациями, она работает нормально, и перенаправляет меня на index . Также продукт принадлежит_пользователю и пользователю has_many: продукты.
%h1 Products
=form_with scope: :product, url: products_path, local: true do |p|
-if @product.errors.any?
=pluralize(@product.error.count, 'error')
prohibited this product from being saved:
%ul
=@product.errors.full_messages.each do |msg|
%li
=msg
%div
=p.label :product_name
%br
=p.text_field :product_name
%div
=p.label :description
%br
=p.text_field :description
%div
=p.submit 'Create'
Контроллер:
class ProductsController < ApplicationController
def index
end
def new
@product = Product.new
end
def create
@product = Product.create(product_params)
if @product.save!
flash[:notice] = "New product create"
redirect_to products_index_path
else
flash.now[:alert] = "Something Gone wrong"
render new_product_path
end
end
def update
end
def delete
end
private
def product_params
params.require(:product).permit(:product_name, :description)
end
end
Модель:
class Product < ApplicationRecord
belongs_to :user
validates :product_name, uniqueness: true,
format: { with: /[A-Z]{3}[-][1-9]{3}/ }
validates :description, presence: true,
length: { minimum: 5 }
end
