小编Lui*_*spo的帖子

Mongoid范围检查数组字段是否包含值

这个问题的解决方案可能看起来很简单,但我一直挥手无言.

我在我的Rails 4.1.4应用程序中使用Mongoid.我有一个模型,其中包含一个将包含字符串值的数组字段.

我需要模型中的Mongoid 范围来检索这个Array字段包含特定String值的实例,该值作为作用域的参数给出.假设我们有这个模型:

class SomeModel
  include Mongoid::Document
  include Mongoid::Timestamps

  field :some_array, type: Array, default: Array.new

  scope :some_scope, ->(value){ elem_match(some_array: value) }

end
Run Code Online (Sandbox Code Playgroud)

上述范围不起作用,因为很明显,在MongoDB中, $ elemMatch需要接收Criteria作为.但是,如何判断元素必须等于给定值???

关于如何编写这个非常简单的范围的任何线索???

问候!!!.提前致谢.

arrays ruby-on-rails mongodb mongoid

20
推荐指数
1
解决办法
7170
查看次数

Rails生成设计:控制器无法工作

简单的问题.

我正在为我的应用程序使用Rails 4.1.4Devise 3.3.0.

我正在尝试生成Devise的控制器,所以我可以覆盖一些行为.

文档说运行...

rails generate devise:controllers [scope]

...在app/controllers/scope下生成控制器,以便您可以修改它们.但是当我运行上一个命令时,它一直说没有发电机设备:控制器:

找不到发电机设备:控制器.

有谁知道为什么?

谢谢.

UPDATE

事实上,当我跑...

铁轨生成

...为了检索可用生成器的列表,我得到了Devise生成器的以下输出:

设计:

设计

设计:安装

设计:观点

所以definitelly,设计:控制器发电机不在那里.有没有办法添加它?怎么样?.

谢谢.

ruby-on-rails devise

7
推荐指数
1
解决办法
1万
查看次数

未找到角度翻译模块“pascalprecht.translate”

我正在尝试将角度翻译添加到我的角度应用程序中。我遵循了这个简单的快速入门:https://angular-translate.github.io/docs/#/guide,但我的应用程序不会引导,给我以下错误:

未捕获的错误:[$injector:modulerr] 无法实例化模块 myApp,原因是:错误:[$injector:modulerr] 无法实例化模块 pascalprecht.translate,原因是:错误:[$injector:nomod] 模块“pascalprecht.translate”是无法使用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。

我的index.html文件正确包含角度翻译,如下所示:

<script src="bower_components/angular-translate/angular-translate.js"></script>
Run Code Online (Sandbox Code Playgroud)

任何线索为什么会发生这种情况?我真的很感激你的帮助。

更新

这是我的app.js的一部分,用于澄清一些事情:

var app = angular.module('myApp', [
  'ngAnimate',
  'ngCookies',
  'ngResource',
  'ngSanitize',
  'ngTouch',

  // 3rd party modules.
  'ui.router',
  'restangular',
  'angular.filter',
  'ui.bootstrap',
  'pascalprecht.translate',


  // Custom modules.
  'myApp.config'
])
.
.
.
Run Code Online (Sandbox Code Playgroud)

javascript internationalization angularjs angular-translate

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

Rails 4.1.4自定义确认警报

我在我的应用程序中使用Rails 4.1.4.我有一个删除方法的链接,该方法具有data-confirm属性,因此在继续操作之前会出现一个确认对话框.

<%= link_to t(:delete_account), delete_account_path, method: :delete, class: "btn btn-danger btn-sm", data: { confirm: t(:delete_account_confirmation_text) } %>
Run Code Online (Sandbox Code Playgroud)

出现的确认对话框是浏览器的默认值.我如何自定义这个以使用Bootstrap模式?

问候!!!.

ruby-on-rails twitter-bootstrap

4
推荐指数
1
解决办法
5121
查看次数

如何使用ALASQL和XLSX设置自定义标头名称

我正在使用angular,alasqlxlsx将一些表导出到excel .我使用它如下:

var options = {
    headers: true,
    sheetid: 'users',
    columns: [{
      columnid: 'a',
      title: 'Username'
    }, {
      columnid: 'b',
      title: 'First name'
    }, {
      columnid: 'c',
      title: 'Last name'
    }]
  };

alasql('SELECT * INTO XLSX("test.xlsx", ?) FROM ?', [options, $scope.users]);
Run Code Online (Sandbox Code Playgroud)

我期待使用columnns选项来自定义表头.但它并没有这样做.

有什么线索的原因?

excel xlsx angularjs alasql

4
推荐指数
2
解决办法
7343
查看次数

使用Mongoid在Rails中执行原子块事务

我在我的应用程序中使用Rails 4.1.4Mongoid.

我只是想知道是否有办法在Rails中使用Mongoid以原子方式执行块事务.

为了弄清楚,假设我有这个:

some_model_instance = SomeModel.find(some_id)
some_model_instance.some_attribute = "Some Attribute Value"
some_model_instance.save
other_model_instance = OtherModel.find(other_id)
other_model_instance.other_attribute = "Other Attribute Value"
other_model_instance.save
Run Code Online (Sandbox Code Playgroud)

我想将该代码包装在单个原子事务中,我的意思是,如果出现问题,我不希望将两个实例(some_model_instance,other_model_instance)都保存到数据库中.

我已经看到ActiveRecord有点像这样:

SomeModel.transaction do
    # do stuff I did above
end
Run Code Online (Sandbox Code Playgroud)

这对Mongoid有用吗?

谢谢你的帮助!!!.

transactions ruby-on-rails mongoid

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