【问题标题】:Ruby on Rails generating controller with existing folderRuby on Rails 使用现有文件夹生成控制器
【发布时间】:2013-03-10 16:00:58
【问题描述】:

我真的很陌生,我不想弄乱我当前的应用程序。我目前正在研究 HTML/CSS 的东西,但我对如何让事情正常工作有一点了解。

我只是做了一个新的控制器

rails generate controller sign_up

我在自动生成的 rails 的 sign_up 文件夹中创建了一个索引文件 (index.html.erb)。现在我想添加更多文件,我可以通过输入来添加更多文件

rails generate controller sign_up send_page more_page other_pages

send_pagemore_pageother_pages 会自动合并到现有的sign_up 文件夹中吗?如果我希望rails自动添加其他文件,这是添加页面的正确方法吗?我只是想让它毁掉我到目前为止所拥有的东西,所以我不想自己尝试,因为我对此还是很陌生,

谢谢!

【问题讨论】:

  • 只需在views文件夹下新建一个文件。无需使用生成器 :)
  • 它不需要创建必要的工具来在网络浏览器中输出它吗?
  • 当您运行 rails g 控制器时,您只是在创建控制器和文件夹以及您作为参数传递的任何视图文件。所以如果你想添加一个新的动作,这很可能需要一个匹配的视图,你可以编辑控制器并在那里添加动作并在视图中创建一个新文件:)

标签: ruby-on-rails ruby ruby-on-rails-3 controller


【解决方案1】:

回答你的问题:

新文件将添加到现有文件夹中,但不会合并现有文件,您必须通过在新旧文件之间进行选择来解决冲突。

在我看来,您正在尝试对应用程序中需要的每个操作使用生成器:

具有示例结构的脚手架很棒,但是一旦您开始真正构建控制器,您就需要远离它:手动扩展控制器、模型和视图。这是您开始真正了解事情是如何运作的唯一方法。

【讨论】:

    【解决方案2】:

    如果您再次运行生成器,它会抱怨与现有文件发生冲突。然后,您必须选择是否覆盖(丢失您对控制器的现有更改)或不覆盖(在这种情况下,您将无法获得新的自动生成的方法等)。

    您可以为要添加的每个附加页面创建一个新的控制器操作和一个新视图(当然还有一个单元测试!)。如果您使用非标准/非 RESTful 操作名称,您还必须编辑 config/routes.rb 以路由它们。

    查看您示例中的名称以及您对“页面”的引用,我怀疑您真正想要做的是为send_pagemore_page 创建单独的控制器。如果是这种情况,您将为每个新控制器单独运行生成器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 2012-12-27
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多