【问题标题】:Wrong action being generated for form_for on edit编辑时为 form_for 生成了错误的操作
【发布时间】:2013-05-27 08:41:03
【问题描述】:

我的编辑表单的操作生成错误。我构建模型的方式与平时略有不同,我首先使用以下方法生成模型:

rails g model category name:string description:text

然后我运行rake db:migrate 然后生成脚手架:

rails g scaffold_controller Category.

问题在于,在生成的编辑表单中,正在提交的表单是操作category/1 而不是categories/1

我正在使用 rails 4。我不确定表单操作是如何确定的,但设置错误。另一方面,新的类别表格运行良好,对任何人有帮助吗?

似乎 form_for 正在生成错误的操作,即使它应该呈现 category_path(@category) 但当我打印出该路径时它是正确的。有没有什么地方对form_for helper方法解释的很好,一直在找,没找到。

【问题讨论】:

    标签: ruby-on-rails ruby routing scaffolding ruby-on-rails-4


    【解决方案1】:

    检查您的路线,看看您是否有resources :categories 以及与Category 相关的其他内容。

    【讨论】:

      【解决方案2】:

      请检查创建的文件/类的所有命名。

      • 你的控制器应该是CategoriesController
      • 迁移文件应该有create_table :categories do |t|
      • 目录app/views/categories应该存在
      • rake routes 中的所有内容都应该是...categories..

      【讨论】:

      • 你说的所有东西都有效,唯一呈现错误的是编辑表单上的动作......真的很奇怪,也许如果我知道 form_for(@category) 是如何得到它的动作我'我可以调试它......但我想不通
      【解决方案3】:

      解决方案是删除所有更改并使用以下方法正确生成脚手架:

      rails g scaffold Category name:string description:text
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-06
        相关资源
        最近更新 更多