首页 > 解决方案 > 路由错误 - 没有路由匹配 [POST] "/coffee/new"

问题描述

我遇到了路线错误以及 form_with 方法,我找不到问题出在哪里,我正在创建一个简单的 CRUD 并使用 create 方法遇到了这个问题。控制器名称:咖啡控制器表名称:产品

错误

No route matches [POST] "/coffee/new"

咖啡控制器

  def new
    @product = Product.new
  end
  def create
    Product.create(product_params)
  end

  private
  def tweet_params
    params.require(:product).permit(:name, :image, :text)
  end

新的.html.erb

<div class="contents row">
  <div class="container">
    <%= form_with(model: @products, method: :post, local: true) do |form| %>
      <h3>投稿する</h3>
      <%= form.text_field :name, placeholder: "Name" %>
      <%= form.text_field :image, placeholder: "Image Url" %>
      <%= form.text_area :text, placeholder: "text", rows: "10" %>
      <%= form.submit "SEND" %>
    <% end %>
  </div>
</div>

标签: ruby-on-railsdevise

解决方案


您的代码中有几个问题:

1.修复实例变量中的错字

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

2.修正参数中的错字

  private

  # This is not revelant to your issue
  # but you need to change tweet_params to product_params
  def product_params
    params.require(:product).permit(:name, :image, :text)
  end

推荐阅读