我正在尝试将表单数据保存到我的数据库中但由于某种原因,我不断收到错误。
我对 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'