为什么我的补丁“ / objects /:slug”路由告诉我我需要发布路由?

时间:2019-05-08 23:17:48

标签: rest activerecord web-applications sinatra slug

我正在为我的Bootcamp sinatra项目制作一个网络应用程序,该程序可跟踪一系列视频游戏。我想在我的许多路线上使用。填写完我的编辑表单并点击提交后,我被带到sinatra页面,告诉我我需要张贴路线。我已经有一个补丁路由。

我发了一条帖子,但是所有编辑都被忽略了。我还尝试过再次渲染视图,而不仅仅是重定向。

这是我的编辑表单:

  <input id="hidden" type="hidden" name="_method" value="patch">
  <input type="text" name="name" placeholder="Name" value=<%=@console.name%> > <br />
   <input type="text" name="company" placeholder="Company" value=<%=@console.company%>> <br />
   <input type="date" name="date_added" placeholder="Date added" value=<%=@console.date_added%> ><br />
   <input type="integer" name="generation" placeholder="Generation" value=<%=@console.generation%> > <br />
   <input type="submit" value="submit">
  </form>


and my patch route:
   patch '/consoles/:slug' do
   if logged_in?
     @console = Console.find_by_slug(params[:slug])
     @Console.update(:name => params[:name], :company => params[:company], :date_added => params[:date_added], :generation => params[:generation])
     @console.save
     redirect "/consoles/#{@console.slug}"
   else
     redirect "/consoles/#{params[:slug]}/edit"
   end
 end

我想重定向到具有新编辑的显示视图。状路由是否可行,还是应该将路由切换为使用ID?有什么办法可以同时将两者结合在一起?

0 个答案:

没有答案