小编kwb*_*ock的帖子

生成引擎的模型和迁移

所以我正在开发一个新项目,它似乎是使用新引擎功能的绝佳选择.正如引擎所说,它自己的小应用程序,具有自己的视图和控制器和模型.这是我即将到来的地方.

我创建了我的测试应用程序,我将在其中安装新引擎.

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?我试过运行以下但似乎没有发生任何事情,我已经检查了数据库,表格不存在.

回顾一下,我需要知道如何在引擎中创建迁移,并且能够正确地在父应用数据库上运行它们.

感谢您的帮助和指导.

ruby ruby-on-rails ruby-on-rails-plugins ruby-on-rails-3.2

5
推荐指数
1
解决办法
1855
查看次数

从respond_to format.csv测试rspec中文件的内容

我的控制器中有以下代码导出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文件,以便检查结果?我试图解决这个问题.

感谢您的任何帮助,您可以提供.

rspec respond-to rspec-rails ruby-on-rails-3

5
推荐指数
1
解决办法
1270
查看次数