Ruby on rails 如何在现有模型的不同命名空间中创建控制器?
我的rails应用程序中有一个产品模型。现在,我想通过在不同名称空间API中搭建来为这个产品模型创建一个控制器和视图 到目前为止,我已经尝试使用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 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