小编map*_*ap7的帖子

铁路祖先分页

我刚刚关注了Railscast教程:

http://railscasts.com/episodes/262-trees-with-ancestry

是否有可能对Ancestry的结果进行分页?例如:鉴于我在Message控制器中有以下内容:

def index
  @messages = Message.arrange(:order => :name)
end
Run Code Online (Sandbox Code Playgroud)

那么我将如何对其进行分页,因为它会导致哈希?

更新 我发现,如果我使用.keys然后它将分页,但只有顶级而不是孩子.

Message.scoped.arrange(:order => :name).keys
Run Code Online (Sandbox Code Playgroud)

更新 每条消息都有一个代码和一些内容.我可以有嵌套的消息

假设我有

代码名称

1 - Test1
  1 - test1 sub1
  2 - test1 sub2
2 - Test2
  1 - test2 sub1
  2 - test2 sub2
  3 - test2 sub3
Run Code Online (Sandbox Code Playgroud)

这就是我想要显示列表的方式,但我也想对这个已排序的树进行分页.

tree will-paginate paginate ruby-on-rails-3

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

更改Rails控制台的颜色

我在emacs中使用了rails控制台,发现它将字符串的颜色设置为黑色。问题是我的背景也是黑色的,所以要查看文本,我必须用鼠标选择它。

有没有一种方法可以更改控制台使用的颜色导轨?

这是我的.irbrc

require 'irbtools'
IRB.conf[:AUTO_INDENT] = true
IRB.conf[:USE_READLINE] = true
IRB.conf[:LOAD_MODULES] = [] unless IRB.conf.key?(:LOAD_MODULES)
unless IRB.conf[:LOAD_MODULES].include?('irb/completion')
       IRB.conf[:LOAD_MODULES] << 'irb/completion'
end 
Run Code Online (Sandbox Code Playgroud)

emacs console ruby-on-rails colors

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

angularjs掩码覆盖字符

我使用angular-ui mask模块在日期字段上设置了掩码,如下所示:

<input type="text"
     id="date"
     ng-model="transaction.date"
     ui-mask="99/99/9999" />
Run Code Online (Sandbox Code Playgroud)

如果我在该字段中有30/05/2013,并且想要将其更改为10/05/2013,只需在开头添加一个'1',它就会将所有字符推到一起,因此它变为13/00/5201.

有没有办法强制ui-mask覆盖插入它的角色?(这样可以避免某人点击'删除'然后再出现这个角色.

示例:http://jsfiddle.net/5NbD7/ 如果您在我的示例前面键入'30',您将最终得到30/01/0120我宁愿它覆盖字符并产生30/01/2010

mask angularjs angular-ui

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

AngularJS ng-table无法设置null的属性'$ data'

我刚刚开始使用ng-table,我正试图通过茉莉花单元测试来测试它(不确定这是否是测试我的控制器的最佳方法)并且我一直遇到这个错误;

TypeError: Cannot set property '$data' of null
    at project/vendor/assets/javascripts/ng-table-0.3.1/ng-table.src.js:396:55
    at C (project/vendor/assets/javascripts/angular-min.js:92:375)
    at project/vendor/assets/javascripts/angular-min.js:94:28
    at h.$eval (project/vendor/assets/javascripts/angular-min.js:102:308)
    at h.$digest (project/vendor/assets/javascripts/angular-min.js:100:50)
    at h.$apply (project/vendor/assets/javascripts/angular-min.js:103:100)
    at f (project/vendor/assets/javascripts/angular-min.js:67:98)
    at handleResponse (project/vendor/assets/javascripts/angular-mocks.js:1160:9)
    at Function.$httpBackend.flush (project/vendor/assets/javascripts/angular-mocks.js:1491:26)
    at null.<anonymous> (project/spec/javascripts/unit/debtors_controller_spec.js.js:50:24)
Run Code Online (Sandbox Code Playgroud)

这是我在控制器中设置ngTableParams的地方

  # Setup ng-table with defaults and data
  $scope.tableParams = new ngTableParams({
    page: 1,
    count: 10,
    sorting: { code: 'asc'}
  }, {
    # data is created by ngTableParams
    total: 0,

    # ng-table will ask for updated data, this is where it gets it from. …
Run Code Online (Sandbox Code Playgroud)

coffeescript angularjs ngtable

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

对嵌套字段进行ngTable过滤

我在ng-table中有一张发票清单,希望能够过滤嵌套属性.json看起来像这样;

[
  {
     id: 1,
     date: "20/03/2014",
     no: "1",
     client: {
       fullname: "ABC Catering"
     }
  }
]
Run Code Online (Sandbox Code Playgroud)

我的观点看起来像这样

<table ng-table="tableParams" show-filter="true" class="table">
  <tr class='listing' ng-repeat="invoice in $data">
    <td data-title="'Invoice No.'" sortable="'no'" filter="{'no':'text'}">
      {{invoice.no}}
    </td>
    <td data-title="'Date'" sortable="'date'" filter="{'date':'text'}">
      {{invoice.date}}
    </td>
    <td data-title="'Client'" sortable="'client.fullname'" filter="{'client.fullname':'text'}">
      {{invoice.client.fullname}}
    </td>
    <td>
      <a href="/api#/invoices/{{invoice.id}}">Show</a>
      <a href="/api#/invoices/{{invoice.id}}/edit">Edit</a>
      <a href="" ng-confirm-click="destroy(invoice.id)">Delete</a>
    </td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我想让client.fullname的过滤工作.如何过滤嵌套属性?

更新

我找到了一个解决方法,我将嵌套字段放入非嵌套JSON元素中,在上面的示例中,我创建了一个JSON ['client_name']元素并将其分配给rails模型中的client.fullname.然后过滤器工作,因为它没有嵌套.

还在寻找一种方法,我可以在没有这个工作的情况下做.

angularjs ngtable

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

AngularJS预先选择模糊

我在我的AngularJS项目中使用了typeahead,如果我输入完整值并单击该字段,我想让它选择条目.

我举了一个我的意思的例子

http://plnkr.co/edit/NI4DZSXofZWdQvz0Y0z0?p=preview

<input class='typeahead' type="text" sf-typeahead options="exampleOptions" datasets="numbersDataset" ng-model="selectedNumber">
Run Code Online (Sandbox Code Playgroud)

如果我输入'two'并从下拉列表中点击'two',我会得到完整的对象{id:2,name:'two'}.这很好,但是如果我键入'two'并单击到下一个字段而没有选择是否有办法接受列表顶部失去焦点的文本字段?

typeahead angularjs

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

宙斯在启动过程中被挂起了

我在我的项目中使用了zeus 0.15.4,它最近停止了工作.我尝试更新宙斯,但它仍然进入启动阶段,只是挂在那里(蓝色连接).如果我在rails 3.2.x项目中启动zeus就是这样的话

zeus --log log/zeus.log start
Run Code Online (Sandbox Code Playgroud)

然后我得到这个日志

2015/07/22 10:27:44.643477 [/Users/nick/Work/gopath/src/github.com/burke/zeus/go/processtree/slavenode.go:184] boot/(no PID) in unbooted state
2015/07/22 10:27:44.644935 [/Users/nick/Work/gopath/src/github.com/burke/zeus/go/processtree/slavenode.go:372] boot/(no PID) running the root command now
2015/07/22 10:27:45.314983 [/Users/nick/Work/gopath/src/github.com/burke/zeus/go/processtree/slavenode.go:217] boot/(29736) in booting state
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails zeus

5
推荐指数
0
解决办法
97
查看次数

编辑 paper_trail 版本而不创建新版本

我在 Rails 3.2 应用程序上使用 paper_trail 3.0.8,我有一个名为“级别”的模型,我保留这些级别的版本。每个级别都有一个 from_date 和与之相关的成本。每当有人更改日期时,就会创建一个新版本。

我允许人们根据需要删除旧版本,这很有效。我希望能够修改旧的 paper_trail 版本并在不创建新版本的情况下保存它。

class Level < ActiveRecord::Base

  has_paper_trail :only => [:from_date],
    :if => Proc.new { |l|
      l.versions.count == 0 || l.versions.first.item != nil && (l.versions.first.item.from_date.nil? || l.from_date > l.versions.first.item.from_date)
    }

<snip code>
end
Run Code Online (Sandbox Code Playgroud)

如果我执行以下操作,它只会更新当前级别而不是版本

level = Level.find 1
version=level.versions[1].reify
version.cost_cents = 1000
version.save
Run Code Online (Sandbox Code Playgroud)

无论如何要更新旧版本的 cost_cents 吗?

还有没有办法更新旧版本的 from_date 而不在保存时创建新版本?

ruby-on-rails paper-trail-gem

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

从NativeScript上传到Rails Shrine

我正在将Rails 5.2与Shrine gem一起用于图像上传。在客户端,我将NativeScript 6.0与Angular 8.0结合使用。

我已经安装了Shrine,并且可以在Rails端运行,并且可以通过Uppy直接上传。

在使用NativeScript的前端(Android移动设备)上,我可以拍摄一张照片(使用nativescript-camera),然后使用nativescript-background-http将其发送到nativescript-background-http演示服务器(基于节点)。

我遇到的问题是从NativeScript发送到Shrine。

在后端,我有这些路线

Rails.application.routes.draw do
  resources :asset_items
  mount ImageUploader.upload_endpoint(:cache) => "/images/upload" # POST /images/upload
end
Run Code Online (Sandbox Code Playgroud)

在神社里我有

require "shrine"
require "shrine/storage/file_system"

Shrine.storages = {
  cache: Shrine::Storage::FileSystem.new("public", prefix: "uploads/cache"), 
  store: Shrine::Storage::FileSystem.new("public", prefix: "uploads"),           }

Shrine.plugin :logging, logger: Rails.logger
Shrine.plugin :upload_endpoint
Shrine.plugin :activerecord
Shrine.plugin :cached_attachment_data
Shrine.plugin :restore_cached_data
Run Code Online (Sandbox Code Playgroud)

在前端

onTakePictureTap(args) {
    requestPermissions().then(
        () => {
            var imageModule = require("tns-core-modules/ui/image");

            takePicture({width: 150, height: 100, keepAspectRatio: true})
                .then((imageAsset: any) => {
                    this.cameraImage = imageAsset;
                    let image = new imageModule.Image();
                    image.src …
Run Code Online (Sandbox Code Playgroud)

mobile ruby-on-rails nativescript shrine angular

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

appium无法在文本字段中输入

我正在使用nativescript和nativescript-dev-appium进行端到端测试,并且试图在文本字段中输入一些文本。

我的xml布局中的textField;

      <StackLayout padding="10">
           <Label text="Date of Purchase"></Label>
           <DatePickerField hint="Select Date" [(ngModel)]="_dataItem.date_of_purchase"></DatePickerField>
      </StackLayout>

      <StackLayout padding="10">
        <Label text="Name"></Label>
        <TextField automationText="name" hint="Asset Name" [(ngModel)]="_dataItem.name" class="input">
        </TextField>
      </StackLayout>
Run Code Online (Sandbox Code Playgroud)

我的规格;

import { AppiumDriver, createDriver, SearchOptions, nsCapabilities } from "nativescript-dev-appium";
import { assert } from "chai";
const addContext = require('mochawesome/addContext');

describe("sample scenario", () => {
    let driver: AppiumDriver;

    before(async function(){
        nsCapabilities.testReporter.context = this; 
        driver = await createDriver();
    });

    after(async function () {
        await driver.quit();
        console.log("Quit driver!");
    });

    afterEach(async function () {
        if (this.currentTest.state === "failed") …
Run Code Online (Sandbox Code Playgroud)

mobile android automated-tests appium nativescript

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