Не найдено ни одного маршрута [POST] "/ портфели / новые"

Эй, ребята, у меня проблема, нет маршрутов, хотя я создал оба new так же как create метод.

portfollios_controller.rb

class PortfolliosController < ApplicationController
  def index
    @portfolio_items = Portfollio.all
  end

  def new
    @portfolio_item = Portfollio.new
  end

  def create
    @portfolio_item = Portfollio.new(params.require(:portfollio).permit(:title, :subtitle, :body))

    respond_to do |format|
      if @portfolio_item.save
        format.html { redirect_to portfollio_path, notice: 'Your portfolio item is now live.' }
      else
        format.html { render :new }
      end
    end
  end
end

routes.rb

Rails.application.routes.draw do
  resources :portfollios
end

new.html.erb

    <h1>Create a new Portfolio Item</h1>

<%= form_with(model: @portfolio_items, local: true) do |form| %>

  <div class="field">
    <%= form.label :title %>
    <%= form.text_field :title %>
  </div>

  <div class="field">
    <%= form.label :subtitle %>
    <%= form.text_field :subtitle %>
  </div>

  <div class="field">
    <%= form.label :body %>
    <%= form.text_area :body %>
  </div>

  <div class="actions">
    <%= form.submit %>
  </div>
<% end %>

Может кто-нибудь помочь мне с этой проблемой. Я не в состоянии понять это.

1 ответ

Я понял. Проблема с файлом new.html.erb

Мне нужно было изменить ниже строки:-

<%= form_with(model: @portfolio_items, local: true) do |form| %>

в

<%= form_with(model: @portfolio_item, local: true) do |form| %>

Это должно быть @portfolio_item, а не во множественном числе.

Другие вопросы по тегам