1

我通过 ruby​​ 控制台创建了一个新的 MySQL DB 应用程序,提供以下命令

rails new -demo -d mysql

然后我通过 MySQL 编辑器创建了 1 个表。在 Ruby 控制台中,我启动了 rails 服务器,它工作正常(检查了 localhost:3000)。现在我无法为这个表创建控制器类。我尝试了网上给出的许多命令,但似乎没有任何效果。

从Ruby命令控制台我切换到rails控制台给出以下命令

rails console

然后我输入下面的命令来创建控制器类,然后返回 nil

irb(main):003:0> class CategoryController < ApplicationController
irb(main):004:1> def index
irb(main):005:2> end
irb(main):006:1> def show
irb(main):007:2> end
irb(main):008:1> end
=> nil

但是在我的应用程序的 app/controller 文件夹中没有创建这样的类。

我阅读了几个教程,并提到控制器类会在 rails 中自动创建。我也尝试了这些,但它们没有运行。

我不确定我是否遗漏了什么。有人可以帮助指导进一步的步骤。我只在服务器端使用 ROR。我的 Android 应用程序将使用此数据库。

如果有人可以提供相关的初学者教程或使用 ROR 使用 MySQL 进行服务器端编码的示例示例,那将非常有帮助。

谢谢。

4

1 回答 1

1

Rails 控制台用于在运行时测试代码,而不是生成实际存储在文件中以供再次使用的代码。生成控制器的正确方法是通过rails generate controller系统命令行中的命令(而不是来自 Rails 控制台或irb):

这将CategoryController使用两个操作创建您的文件,index, show. 您可以省略这些操作或添加其他操作。

rails generate controller CategoryController index show

假设您的所有 gem 依赖项都正确满足,这将导致类似于下面的输出。

  create  app/controllers/category_controller_controller.rb
   route  get "category_controller/show"
   route  get "category_controller/index"
  invoke  erb
  create    app/views/category_controller
  create    app/views/category_controller/index.html.erb
  create    app/views/category_controller/show.html.erb
  invoke  test_unit
  create    test/controllers/category_controller_controller_test.rb
  invoke  helper
  create    app/helpers/category_controller_helper.rb
  invoke    test_unit
  create      test/helpers/category_controller_helper_test.rb
  invoke  assets
  invoke    js
  create      app/assets/javascripts/category_controller.js
  invoke    scss
  create      app/assets/stylesheets/category_controller.css.scss
于 2013-08-04T13:09:08.203 回答