NoMethodError (неопределенный метод `product_url ' - PullRequest
0 голосов
/ 18 января 2019

У меня следующая ошибка при отладке моего первого проекта на рельсах:

NoMethodError (неопределенный метод `product_url 'для # Ты имел ввиду? products_url):

app / controllers / products_controller.rb: 13: в `create '


class ProductsController < ApplicationController
  def show
    @product = Product.find(params[:id])
  end 

  def new
  end

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

  private
    def product_params
      params.require(:product).permit(:title, :price, :count)
    end
end

---------- конфиг / routes.rb ------

Rails.application.routes.draw do получить "добро пожаловать / индекс" ресурс: продукты root 'welcome # index'

конец

---------- маршруты рейка ----------

               Prefix Verb   URI Pattern                                                                              Controller#Action
        welcome_index GET    /welcome/index(.:format)                                                                 welcome#index
         new_products GET    /products/new(.:format)                                                                  products#new
        edit_products GET    /products/edit(.:format)                                                                 products#edit
             products GET    /products(.:format)                                                                      products#show
                      PATCH  /products(.:format)                                                                      products#update
                      PUT    /products(.:format)                                                                      products#update
                      DELETE /products(.:format)                                                                      products#destroy
                      POST   /products(.:format)  

1 Ответ

0 голосов
/ 18 января 2019

Вам нужно инициализировать @product. Это можно сделать так:

before_action :set_document, only: [:show, :edit, :update, :destroy]

def set_document
  @document = Document.find(params[:id])
end

Вы можете пометить контроллер с помощью

rails g scaffold_controller Document

чтобы точно увидеть, как rails генерирует классы для модели.

В вашем rout.rb должно быть

resources: products
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...