Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ruby sinatra中的补丁方法_Ruby_Sinatra Activerecord - Fatal编程技术网

ruby sinatra中的补丁方法

ruby sinatra中的补丁方法,ruby,sinatra-activerecord,Ruby,Sinatra Activerecord,我正在使用sinatra和activerecord编写一个web应用程序,但我无法找出我的代码中的错误…如果你能检查它并指导我完成它,那就太棒了!!所有模型都已链接,但我无法将某些书籍的信息更新到数据库中 RUBY SINATRA代码: get '/info/:isbn/edit' do @book = Book.find_by(isbn: params[:isbn]) erb :edit end patch '/info/:isbn' d

我正在使用sinatra和activerecord编写一个web应用程序,但我无法找出我的代码中的错误…如果你能检查它并指导我完成它,那就太棒了!!所有模型都已链接,但我无法将某些书籍的信息更新到数据库中

RUBY SINATRA代码:

     get '/info/:isbn/edit' do
        @book = Book.find_by(isbn: params[:isbn])
        erb :edit
     end

 patch '/info/:isbn' do
     book = Book.find_by(isbn: params[:isbn])
     book.title = params[:title]
     book.page_count = params[:number_pages]
     book.category = params[:category]
     book.save
     redirect to "/info/#{ params[:isbn] }"
   end
雇员再培训局网页

   <form action="/info/<%= @book_isbn%>/edit" method="post">

   <input type="hidden" value="patch" name="_method">
   <label for="">Title</label>
   <input type="text" name="title" value="<%= @book_title %>">
</form>

标题

您将表单发送到错误的URL:

<form action="/info/<%= @book_isbn%>/edit" method="post">


URL应为
/info/

您将表单发送到错误的URL:

<form action="/info/<%= @book_isbn%>/edit" method="post">


URL应该是
/info/

检查以确保控制器将:method\u override设置为true

set :method_override, true

没有它,Sinatra将不知道如何处理
input type=“hidden”value=“patch”name=“\u method”
检查以确保控制器将:method\u override设置为true

set :method_override, true

没有它,Sinatra将不知道如何处理
input type=“hidden”value=“patch”name=“\u method”

,谢谢..但它一直给我相同的错误,只是现在它用实际的数字替换:isbn…问题是:即使我试图指定另一条路径,也可以说“get'/info/edit/:isbn'do”(也为补丁更改它)服务器的回答是“sinatra不知道这首小曲,试试这个:get'/info/3821284293/edit'do”…但我的路径不同!!!!尝试重新启动服务器..但没有..@Uzbekjon感谢..但它一直给我相同的错误,只是现在它用实际数字替换:isbn…问题是:即使我尝试指定另一个路径,让我们说“get'/info/edit/:isbn'do”(也为补丁更改它)服务器的答案是“sinatra不知道这首小曲,试试这个:get'/info/3821284293/edit'do.”。但我的路径不同!!!!尝试重新启动服务器..但没有..@Uzbekjon