将表单数据保存到数据库Ruby on Rails



我正在尝试将表单数据保存到我的数据库中但由于某种原因,我不断收到错误。

我对 ruby 相当陌生,所以不太确定问题是什么。我正在尝试创建一个新的书籍条目,这是我到目前为止所拥有的。

书籍控制器

class BooksController < ApplicationController
  def new 
    @book = Book.new
  end 
  def create
    @book = Book.new(book_params)
    if @book.save
        redirect_to new_book_path
    end
  end
  private
  def book_params
    params.require(:book).permit(:title, :description, :author, :status, :isbn_number)
  end
end

我得到的错误是:

NameError in BooksController#create
undefined local variable or method `new_book_path' for #<BooksController:0xe3f5ae8>

有一张表格,我填写了所有这些详细信息,但是当我尝试提交时,我收到该错误。它说错误在重定向上,但我不知道出了什么问题。

路线

Rails.application.routes.draw do
  resources :books, :only => [:new, :create]
  get 'page/books'
  get 'page/about'
  get 'page/contact'
  get 'page/home'
  devise_for :users 
  # The priority is based upon order of creation: first created -> highest priority.
  # See how all your routes lay out with "rake routes".
  # You can have the root of your site routed with "root"
   root 'page#home'
end

看起来您的路由文件有问题:您的 config/routes.rb 文件应包含以下内容资源 :书籍, :仅 => [:新, :创建]

有关更完整的答案:

您得到的错误是说这条线

 redirect_to new_book_path

抛出错误,因为它不理解变量new_book_path。此变量通过路由文件创建/处理。

只需尝试更改此行

redirect_to new_book_path

render 'new'

最新更新