Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在现有模型的不同命名空间中创建控制器?_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何在现有模型的不同命名空间中创建控制器?

Ruby on rails 如何在现有模型的不同命名空间中创建控制器?,ruby-on-rails,Ruby On Rails,我的rails应用程序中有一个产品模型。现在,我想通过在不同名称空间API中搭建来为这个产品模型创建一个控制器和视图 到目前为止,我已经尝试使用 rails g scaffold_controller product name:string price:integer 在这之后,我把这个添加到我的路由文件中 namespace :api do resources :products end 现在,当我转到链接api/产品时。我得到这个错误 uninitialized constant

我的rails应用程序中有一个产品模型。现在,我想通过在不同名称空间API中搭建来为这个产品模型创建一个控制器和视图

到目前为止,我已经尝试使用

rails g scaffold_controller product name:string price:integer 
在这之后,我把这个添加到我的路由文件中

namespace :api do
  resources :products
end
现在,当我转到链接api/产品时。我得到这个错误

uninitialized constant Api::Product
关于索引作用

def index
   @api_products = Api::Product.all
end
在此之后,我从控制器索引中删除了Api::new和create操作。完成此操作后,我的索引url/api/products工作正常,但现在当我尝试创建一个新产品/api/products/new时,我得到以下错误

undefined method `products_path' 
这是我的模型文件位置为models/

class Product < ActiveRecord::Base
end
是否有人可以帮助您正确实现此功能?

您应该将product.rb移动到app/models/api,并将类名更改为api::product


错误uninitialized constant Api::Product指向哪一行代码?请将其添加到问题中。您还可以将您的模型代码添加到问题中吗?添加了modelNow的代码,它给出了以下错误SQLite3::SQLException:没有这样的表:api_products:选择api_products.*从我索引文件这一行的api_products中,这是可行的,但是否可以在不更改模型文件的情况下执行此操作,因为我有以前的代码,我不想更改那个文件?@LovishChoudhary不可能。如果要使用带名称空间的控制器和视图,则模型也应带名称空间。
#app/models/api/product.rb
class Api::Product < ActiveRecord::Base
  self.table_name = "products"
end