创建操作的自定义 POST 路由未启动

2024-01-01

# 解释上下文

puts "I am learning Rails, building a simple forum application."
puts "I am pretty satisfied to where I got so far but routes... "
puts "...still figuring them out."
puts "Been 2 days trying all sorts of things."
puts "This is where I am now, and something is not working as expected."
puts "Any help/pointers would be appreciated! :)"

# 问题

puts "I want my forum's create path to be '/helpcenter' and not '/helpcenter/cat'."
puts "When I access the form to create a new forum and I hit submit, "
puts "the form post to '/helpcenter' correctly (firebuged)"
puts "but I get the index, not the create!"
puts "I even put debugger in my create action but it is not being called."

# 配置/routes.rb

scope "/helpcenter" do
  resources :cat, :controller => "forums", :as => :forums do
    resources :topics , :controller => "forum_topics", :as => :topics
    resources :posts, :controller => "forum_posts", :as => :posts
  end
end

match "/helpcenter" => "forums#index", :as => :forums
match "/helpcenter" => "forums#create", :via => :post, :as => :create_forum

我希望这个问题出在我创建路线的方式上。我尝试了很多不同的事情。

# _form.html.erb

<%= form_for(@forum) do |f| %>
....
<% end %>

我正在使用标准 form_for 助手。

# 论坛的 Rake 路由

$ CONTROLLER=forums rake routes
delete_forum GET    /helpcenter/cat/:id/delete(.:format) forums#delete
      forums GET    /helpcenter/cat(.:format)            forums#index
             POST   /helpcenter/cat(.:format)            forums#create
   new_forum GET    /helpcenter/cat/new(.:format)        forums#new
  edit_forum GET    /helpcenter/cat/:id/edit(.:format)   forums#edit
       forum GET    /helpcenter/cat/:id(.:format)        forums#show
             PUT    /helpcenter/cat/:id(.:format)        forums#update
             DELETE /helpcenter/cat/:id(.:format)        forums#destroy
      forums        /helpcenter(.:format)                forums#index
create_forum POST   /helpcenter(.:format)                forums#create

我们清楚地看到 POST /helpcenter 的路由绑定到论坛控制器的创建操作。

# Logs

Started POST "/helpcenter" for 127.0.0.1 at 2012-07-02 12:25:00 -0400
Processing by ForumsController#index as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"d5iVKCh234234=", "forum"=>{"name"=>"", "description"=>""}, "commit"=>"Save Changes"}

日志清楚地显示我正在 /helpcenter 上执行 POST,但它会启动索引操作而不是创建操作!

# 我究竟做错了什么?

puts "Thanks!"

我认为该请求符合您的第一个请求forums路由,因为您没有指定 HTTP 方法。这应该有效:

match "/helpcenter" => "forums#index", :via => :get, :as => :forums
match "/helpcenter" => "forums#create", :via => :post, :as => :create_forum

或者简写版本:

get "/helpcenter" => "forums#index", :as => :forums
post "/helpcenter" => "forums#create", :as => :create_forum
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建操作的自定义 POST 路由未启动 的相关文章

随机推荐

  • selenium webdriver 支持 IE10 Metro?

    selenium webdriver 是否支持 IE10 Metro 默认情况下 测试在桌面模式下运行 有什么办法可以在 Metro 模式下测试吗 不 在撰写本文时 还不支持使用 Metro 界面进行自动化 对不起 然而 Selenium
  • 获取 User.identity 的名字和姓氏

    我有一个使用 Windows 身份验证设置的 Intranet 应用程序 我需要在标题中显示用户名和用户的姓名首字母 例如 欢迎j史密斯JS 到目前为止我做了什么 div class header profile name Welcome
  • 如果我在全局范围内声明一个没有大小的数组,会得到什么?

    In 答案之一 https codegolf stackexchange com a 5163 38214 in C 语言打高尔夫球的技巧 https codegolf stackexchange com q 2203 38214 我看到了
  • HTTP 标头中的额外空间在 HAProxy 上导致 400 错误

    我们最近从 Citrix 切换到 HAProxy 来实现负载平衡 问题是 对于某些请求 HAProxy 开始给出 400 错误 过去在 citrix 上运行良好 因此 我们暂时从基于 HTTP 的负载平衡转向基于 TCP 的负载平衡 经过进
  • PHP:只有在成功登录后才能访问文件夹的文件

    现在 在我的网站中 我成功登录后成功将用户重定向到www mysite com protected files redirect php页面通过在我的上使用类似的东西www mysite com login php page if logi
  • 检测 Windows 中的全屏模式

    我需要检测某些应用程序当前是否正在全屏模式下运行 如果是 那么我必须停止我的申请 那么 我怎样才能检测到呢 附注Win32 C 所有其他答案都相当黑客 Windows Vista Windows 7 及更高版本支持SHQueryUserNo
  • 如何通过 .Net MVC4 中的 JSON 通过 ajax 调用将复杂的视图模型传递到控制器操作中?

    因此 我尽可能多地搜索 Stack Overflow 但找不到这个特定问题的答案 如果已经有人问过这个问题 我们深表歉意 我找到了以下问题的答案 如何将对象 类传递给操作 如何通过查询字符串将对象传递给操作 如何通过 json 将对象传递给
  • 如何将 rpy2 指向现有的 R 安装?

    我安装了两个 R 有没有办法将 rpy2 明确指向其中一个 我相信 phonixor是对的 rpy2 使用它在路径中找到的 R 如果你想改变这一点 就改变你的道路 PATH path to r bin PATH
  • 如何检索局部变量?

    是否可以从我在 matlab 中运行的程序函数中检索局部变量 即我想从代码中检索一个变量 该变量未出现在输出中 提前致谢 下面描述了添加到函数本身以使变量在本地范围之外可用的代码 当您无法更改函数时 从外部当然无法更改范围 这是预期的 正确
  • 如何删除 Android 上的系统栏,我的意思是,所有

    我对 Android 编程还很陌生 几周前就开始了 Stackoverflow 这是我自 android 第一天以来最好的新油炸 第一次 我想真正寻求帮助 而不是在其他地方阅读它 主要是因为我无法在 任何地方 找到我的问题的答案 我正在使用
  • 为什么我们应该将模板包装在脚本块内?

    背景 所有 JS 模板引擎都建议将模板文本放入脚本块中 如下所示 但许多开发人员 可以理解 不喜欢这样做 因为他们在脚本块内的代码编辑器中失去了 HTML 语法突出显示 我见过这样的解决方法 在 text html 模板中保持正确的 HTM
  • MySqlCommand.LastInsertedId 如何工作?

    在我的一个项目中 我必须从数据库中获取最后插入的 ID 以便我可以将新插入的数据与内存中的数据同步 而无需执行SELECT FROM my db 查询 即我正在做一个SELECT FROM my db WHERE id new index
  • Mongoid 不同领域的相同嵌入文档类型

    我正在尝试添加嵌入文档 我知道这个语法是错误的 但它展示了我想要完成的任务 class Email include Mongoid Document embeds many recipients as to embeds many reci
  • java.io.FileNotFoundException:(不允许操作)在 mac osx (el Capitan) 上使用 ./keytool -import 时出错 - Java 6

    尝试将 CA 证书导入到我的 Java 6 信任库并遇到此错误 keytool v import trustcacerts alias Rapidssl file Users spurr Desktop rapidssl cer keyst
  • ajax调用成功后重新初始化Slick js

    我正在使用 Slick 进行轮播实现 并且在页面加载时一切正常 我想要实现的是 当我进行 Ajax 调用来检索新数据时 我仍然需要 slick 轮播实现 但此刻我失去了它 我已将对 slick 的调用放入函数中 function slick
  • Zend 中的 Flash Messenger 类型

    是否可能或我如何为 Zend 中的 FlashMessage 指定类型 例如 This is a Success message this gt helper gt FlashMessenger You are successfully c
  • flutter doctor - CocoaPods 已安装但无法工作

    使用 zsh 用于在 bash 中工作酿造医生 您的系统已准备好酿造 颤振医生给出了这个错误 Xcode develop for iOS and macOS Xcode 12 2 CocoaPods installed but not wo
  • 代码存储库最佳实践[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用标记、颜色和 lw 选项绘制多个数据框列

    虽然线图效果很好 但我正在寻找一种更有效的方法来编写此代码并缩短它 什么被认为是 最佳实践 新人正在做基础工作 我觉得我应该使用循环来分配所有 y 值 也许还有绘图 数据说明 1990 2018 年时间序列数据 包含大陆电力消耗 TWH f
  • 创建操作的自定义 POST 路由未启动

    解释上下文 puts I am learning Rails building a simple forum application puts I am pretty satisfied to where I got so far but