所以我正在开发一个新项目,它似乎是使用新引擎功能的绝佳选择.正如引擎所说,它自己的小应用程序,具有自己的视图和控制器和模型.这是我即将到来的地方.
我创建了我的测试应用程序,我将在其中安装新引擎.
rails new engine_app && cd engine_app
Run Code Online (Sandbox Code Playgroud)
然后我创建了新引擎
rails plugin new my_engine --mountable
Run Code Online (Sandbox Code Playgroud)
然后我将'gem'添加到engine_app的gemfile中
gem 'my_engine', :path => './my_engine'
Run Code Online (Sandbox Code Playgroud)
然后我将引擎安装在engine_app的路由中
mount MyEngine::Engine, :at => '/my_engine'
Run Code Online (Sandbox Code Playgroud)
然后我进入my_engine的虚拟应用程序并运行
rails generate model MyModel title:string body:text
Run Code Online (Sandbox Code Playgroud)
这是我遇到困惑的地方.根据我的理解,这应该生成一个命名空间表(我认为它将是my_engine_my_model).迁移文件中的表只是my_model.
其次,如何运行此迁移,并且仅在调用表时迁移文件是否正确:my_model?我试过运行以下但似乎没有发生任何事情,我已经检查了数据库,表格不存在.
回顾一下,我需要知道如何在引擎中创建迁移,并且能够正确地在父应用数据库上运行它们.
感谢您的帮助和指导.
我的控制器中有以下代码导出csv文件
...
def export
@filename = 'users.csv'
@output_encoding = 'UTF-8'
@users = User.active_users #not the actual scope but this only returns active
respond_to do |format|
format.csv
end
end
...
Run Code Online (Sandbox Code Playgroud)
我的规格中有以下内容
it "should only return active users"
get :export, :format => :csv
# i want to check that my mocked users_controller#export is only returning the active users and not the inactive ones
end
Run Code Online (Sandbox Code Playgroud)
response.body当我检查它时,在这个测试中是空的.在浏览器中执行此操作时,如何在下载的规范中获取csv文件,以便检查结果?我试图解决这个问题.
感谢您的任何帮助,您可以提供.