小编wkh*_*tch的帖子

如何在rails3中使用AR查询接口指定多个值

每节铁轨的2.2指导活动记录查询界面在这里:

这似乎表明我可以传递一个指定条件的字符串,然后是一个值数组,在构建arel时应该在某个点上替换它们.所以我有一个声明生成我的条件字符串,它可以是链接在一起的不同数量的属性与它们之间的AND或OR,我传入一个数组作为第二个arg到where方法,我得到:

ActiveRecord :: PreparedStatementInvalid:绑定变量数错误(1表示5)

这让我相信我做错了.但是,我没有找到任何关于如何正确做到的事情.要以另一种方式重述问题,我需要将一个字符串传递给where方法,例如"table.attribute =?AND table.attribute1 =?OR table.attribute1 =?" 将未知数量的这些条件一起加入或合并,然后传递一些东西,我认为是一个数组作为第二个参数,用于替换第一个参数条件字符串中的值.这是正确的做法,或者,我只是在某个地方错过了一些其他巨大的概念而且我对这一切都错了?我认为,不管怎么说,只要生成一个原始的sql字符串,就必须这样做.

activerecord ruby-on-rails-3

27
推荐指数
5
解决办法
4万
查看次数

为什么AWS Lambda功能总是超时?

我正在测试aws lambda,使用4.3版本的nodejs.我能够在控制台测试中成功完成处理函数中的所有语句,包括连接到我们的vpc中的mongodb主机.但是,该功能总是超时.我发现了几个讨论使用回调,设置上下文属性和IAM角色权限的帖子和资源,但无论我做什么,它总是会超时.当前代码:

'use strict';

var Mongoose = require('mongoose');
var Device = require('./device_model');
var Alarm = require('./alarm_model');
var Event = require('./event_model');

var mongoConnection = process.env.MONGO_URL;

var connection = Mongoose.connect(mongoConnection);

Mongoose.connection.once('open', function() {
    console.log("Connecting to mongo at: " + mongoConnection);
    console.log("Mongoose connection in lambda opened");
});

Mongoose.connection.on('error', function(){
    console.error("Error creating mongoose connection in lambda, exiting!");
    process.exit(1);
});

exports.check_alarms = function(event, context, callback) {

    context.callbackWaitsForEmtpyEventLoop = false;
    console.log("The incoming event: " + JSON.stringify(event));

    var device = null;
    Device.findByUUID(event.uuid, function(error, result){
        if(!error){
            device = …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services node.js aws-lambda

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

使用带有rails迁移的mysql创建多列不同的索引

尝试在rails迁移中执行此语句以生成多列唯一约束/索引:

add_index :contributors, [:project_id, :user_id], :unique=>true
Run Code Online (Sandbox Code Playgroud)

我也试过为方法提供一个可选的:name,但仍然失败了.此表中没有现有密钥

Mysql::Error: Duplicate entry '5-9' for key 'distinct_user_and_project': CREATE UNIQUE INDEX `distinct_user_and_project` ON `contributors` (`project_id`, `user_id`)
Run Code Online (Sandbox Code Playgroud)

如何使用execute和straight sql创建这个缺点?谢谢.

mysql rails-migrations

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

机器人; 在AdapterViewFlipper上设置输入/输出动画:未知的动画师名称翻译

我有一些非常简单的动画与ViewFlipper完美配合,但是如果我尝试在AdapterViewFlipper上设置它们,我会收到运行时错误"Unknown animator name translate".在查看每个方法的相应方法时,看起来ViewFlipper需要ViewAnimation,而AdapterViewFlipper需要AdapterViewAnimation.api是相同的,并且都构建没有错误.这是其中一个动画的xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="false">

    <translate
    android:fromXDelta="0%" android:toXDelta="-100%"
    android:fromYDelta="0%" android:toYDelta="0%"
    android:duration="800"/>
</set>
Run Code Online (Sandbox Code Playgroud)

我把它放在鳍状肢上:

vf.setOutAnimation(this, R.anim.out_to_left);
Run Code Online (Sandbox Code Playgroud)

我猜这可能意味着我不能使用翻译,键入,但那么我将如何完成相同的动画?瘸...

animation android

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

确定ObjectAnimator的translationX/Y值; 如何将视图移动到精确的屏幕位置?

我正在尝试使用ObjectAnimator.ofFloat(...)将视图移动到屏幕的右上角但是,我没有得到我期望的结果.我预先使用ViewTreeListener等获取视图的坐标,我已经知道我需要从整个宽度的末尾偏移的x值.我无法将任何一个维度移动到我想要的位置.相关代码:

获得起始坐标; 目前的观点是:

int[] userCoords = new int[]{0,0};
userControlLayout.getLocationInWindow(userCoords);
//also tried getLocationInScreen(userCoords); same result
userUpLeft = userCoords[0];
userUpTop = userCoords[1];
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,当我打电话时,我得到与userUpLeft相同的值(在屏幕坐标中,而不是相对于父节点)userControlLayout.getLeft()我希望它们根据我对文档的理解而有所不同.无论如何...

构造ObjectAnimators:

//testXTranslate is a magic number of 390 that works; arrived at by trial. no idea why that 
// value puts the view where I want it; can't find any correlation between the dimension 
// and measurements I've got
ObjectAnimator translateX = ObjectAnimator.ofFloat(userControlLayout, "translationX",
                                                                  testXTranslate);

//again, using another magic number of -410f puts me at the Y …
Run Code Online (Sandbox Code Playgroud)

android android-layout objectanimator

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

调试ActiveMerchant; 需要完整的请求和响应.如何?

Rails 3.0.10和activemerchant gem 1.29.3

我的应用程序在沙箱中工作正常,但生产模式下的事务失败,"安全标头无效","ErrorCode"=>"10002"

我们在审核了所有配置参数一百万次之后,我们用paypal发起了一个支持请求,他们觉得我们遇到了一个不正确的端点.他们已经要求对交易进行全面跟踪,包括标题等,所以我试图弄清楚如何做到这一点.我找到了这篇文章

建议将其添加到配置块

ActiveMerchant::Billing::PaypalGateway.wiredump_device = File.new(File.join([Rails.root, "log", "paypal.log"]), "a")
Run Code Online (Sandbox Code Playgroud)

但这只会导致空日志; 什么都没有被抛弃.

那么,如果可能的话,如何从GATEWAY对象获取此信息?这是生产配置,其格式与staging env中使用的格式相同.

::GATEWAY = ActiveMerchant::Billing::PaypalGateway(
      :login => 'me_api1.blah...',
      :password => 'string...',
      :signature => 'longer string...'
    )
Run Code Online (Sandbox Code Playgroud)

谢谢.

paypal activemerchant ruby-on-rails-3

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

在rails3中使用wheres链接多个连接

尝试构造一个查询,以便我有多个语句指定连接,每个连接都有一个链接到它们的where消息.当查询运行时,我得到所有连接,但只有我第一次调用的位置.这是执行查询的方法体:

observations_joins = Observation.joins(:obs_session => :project).where(:obs_sessions=>{:project_id=>self.project.id})
descriptor_hash = descriptor_where_hash if tag_descriptors && tag_descriptors.size > 0
puts "The descriptor_hash: #{descriptor_hash}"
observations = observations_joins.joins(:obs_descriptors).where("#{descriptor_hash['query_string']}", descriptor_hash['match_values']) if tag_descriptors && tag_descriptors.size > 0
arel = observations.arel
puts "The arel sql should be: #{arel.to_sql}"
observations
Run Code Online (Sandbox Code Playgroud)

我有另一个从第二个连接语句内部调用的方法,它迭代潜在的匹配值并生成字符串和使用的值; 身体在这里:

match_values = []
query_string = "obs_descriptors.tag_name = ?"
tag_descriptors.each_index do |index|
  query_string = query_string + " #{tag_descriptors.fetch(index).qualifier_key} obs_descriptors.tag_name = ?" if index != 0
  match_values << tag_descriptors.fetch(index).tag_name
end
{:match_values=>match_values, :query_string=>query_string}
Run Code Online (Sandbox Code Playgroud)

所以生成的sql看起来像:

SELECT     `observations`.* FROM       `observations` INNER JOIN `obs_sessions` …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails-3

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

如何调试rake规范不执行测试; 无限悬挂问题(导轨3)

使用rake 0.9.2,rspec,期望,模拟2.6.0,rspec-core 2.6.4,rspec-rails 2.6.1

当我执行rake rails或rspec spec path/to/spec时,我得到正常输出,直到我希望看到测试实际执行,然后没有进一步.我必须杀死进程kill-9%1来终止任务.

我的gemfile:

source 'http://rubygems.org'

gem 'rails', '3.0.4'
gem 'rake', '0.9.2'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

# gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'warden'
gem 'devise', "= 1.2.1"
gem 'devise_invitable'
gem 'mysql'
gem 'will_paginate', "~> 3.0.pre2"
gem 'acts-as-taggable-on'
gem 'acts_as_list'
gem 'activemerchant'
gem 'braintree'
gem 'bartt-ssl_requirement', :require => 'ssl_requirement'
gem "paperclip"
gem 'jeditable-rails'
gem 'rdiscount'
gem "nifty-generators", :group => :development

gem "exception_notification", :git => "git://github.com/rails/exception_notification", :require => 'exception_notifier' …
Run Code Online (Sandbox Code Playgroud)

rake rspec-rails ruby-on-rails-3

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

尝试上传食谱后,厨师刀因密钥错误而失败

我设置了一个厨师服务器,将admin.pem和validator.pem文件从服务器复制到我的工作站,然后使用knife configure ...在工作站上配置刀,我创建了一个新用户,我可以验证来自网络ui,而且,我能够成功运行knife client list和其他刀具命令.然后我尝试上传一本食谱

knife cookbook upload -o cookbooks/ apache2
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

错误:无法从/etc/chef/client.pem加载您的私钥
检查您的配置文件并确保您的私钥可读

并且所有后续的刀命令都将返回此错误.我唯一可以让它再次运行的是重新运行"knife configure -i ...."

发生了什么,我做错了什么?我不是先创建新节点或客户端,只是尝试上传烹饪书.那是我的问题吗?但是,似乎烹饪书上传失败不应该导致完全弄乱刀配置,是吗?

chef-infra knife

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

具有相对输出路径的greenDAO模式生成; 未找到i/o失败

本教程之后,我已经能够创建一个可编译和运行的工作应用程序模块,但如果我将相对路径传递给generateAll方法则会失败.如果我指定一个绝对路径,它工作正常.我的android studio项目由几个模块组成,结构如下

project_root,包含每个模块的子目录

/ daogenerator

/应用

每个都有自己的src目录,我正在调用generateAll:

new DaoGenerator().generateAll(schema,
                "../app/src");
Run Code Online (Sandbox Code Playgroud)

这会导致io错误,表明该目录不存在.我已经修改了许多合理替代方案的路径,并确认路径存在于磁盘上,但仍然出现错误.绝对路径工作正常,所以我试图理解我错过了什么让它使用相对路径.谢谢.

android greendao

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

让Android AnimatorSet停止制作动画

我有以下AnimatorSet方法:

private AnimatorSet dialCenterThrob() {
    int bpm = workoutStream.getHeartRate();
    dialCenterImageView.clearAnimation();
    AnimatorSet finalSet = new AnimatorSet();

    ObjectAnimator pulseX = ObjectAnimator.ofFloat(dialCenterImageView, View.SCALE_X, 0.98f, 1.06f);
    ObjectAnimator pulseY = ObjectAnimator.ofFloat(dialCenterImageView, View.SCALE_Y, 0.98f, 1.06f);

    pulseX.setRepeatMode(ObjectAnimator.REVERSE);
    pulseX.setRepeatCount(ObjectAnimator.INFINITE);
    pulseY.setRepeatMode(ObjectAnimator.REVERSE);
    pulseY.setRepeatCount(ObjectAnimator.INFINITE);
    pulseX.setDuration(bpm);
    pulseY.setDuration(bpm);
    pulseX.setInterpolator(new AccelerateInterpolator());
    pulseY.setInterpolator(new AccelerateInterpolator());

    finalSet.playTogether(pulseX, pulseY);

    return finalSet;
}
Run Code Online (Sandbox Code Playgroud)

这是在var上设置的,称为throbber,偶尔会通过以下方法更新:

private void updateThrobbing() {
    if (hasThrob()) {
        throbber = dialCenterThrob();
        throbber.start();
    } else {
        if (throbber != null && throbber.isRunning()) {
            stopThrobbing();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不能让它停止动画,这是目前尝试这样做的方法:

public void stopThrobbing() {
    List<Animator> throbbers = throbber.getChildAnimations();
    for(Animator …
Run Code Online (Sandbox Code Playgroud)

android objectanimator

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

aws 弹性豆茎;如何使用 .ebextensions 在我的应用程序根目录中移动文件

我正在尝试移动位于我的应用程序目录中的文件:

{MyAppRoot}/.aws_scripts/eb_config.js
Run Code Online (Sandbox Code Playgroud)

{MyAppRoot}/config.js.
Run Code Online (Sandbox Code Playgroud)

我需要在应用程序实际重新启动之前执行此 mv 或 cp,因为主应用程序模块立即需要此文件的存在。我尝试过使用 .ebextensions 各种机制,如命令、container_commands 等,但都失败了,要么没有统计数据,要么权限被拒绝。我无法从 eb_activity.log 或任何其他日志文件中获取更多详细信息。我在 aws 论坛上遇到了类似的问题,但我无法取得任何成功。

完成此任务的正确方法是什么?谢谢。

amazon-web-services amazon-elastic-beanstalk

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

iOS vfr阅读器框架无法使用下载的pdf

我找到了vfr阅读器框架,同时研究了在应用程序中显示pdf的更好的替代方案.在我的上下文中,我需要下载pdf; 它已经不包含在应用程序包中.使用嵌入式pdf很容易使用vfr框架,但到目前为止,我已经难以使用我写入文件的下载数据,然后使用它的路径初始化ReaderDocument.我能够将相同的文件加载到UIWebView中没问题,所以我不相信它是数据.这是代码:

NSString *fullPathToPDF = [[[self appDelegate] urlForFileUnderRecursiveDocWithName:self.pdfName andOptionallyStartingAtDirectory:[[self appDelegate] pathURLForImagesDirectory]] path];
        ReaderDocument *pdfDoc = [ReaderDocument withDocumentFilePath:fullPathToPDF password:nil];
Run Code Online (Sandbox Code Playgroud)

生成的pdfDoc将为null,或者,当传递上面的完整路径时,它将与ReaderDocument的第229行的断言一起崩溃

NSAssert(NO, @"CGPDFDocumentRef == NULL");
Run Code Online (Sandbox Code Playgroud)

因为(我在做出一个合理的假设)这一行(217;同一类):

CGPDFDocumentRef thePDFDocRef = CGPDFDocumentCreateX(docURLRef, _password);
Run Code Online (Sandbox Code Playgroud)

无法创建CGPDFDocumentRef.我之前提到过将它传递给完整路径与仅传递文件名之间的区别,这是因为在查看代码时,ReaderDocument类似乎会对它希望找到文件的位置做出一些假设.无论我将文件保存到哪里,或者我传递给它的是... withDocumentFilePath方法,我都无法使它工作.

重申一下,我能够使用完全相同的文件并在UIWebView中打开它没问题.

那么,任何人都有同样的问题,或者能够做我正在尝试成功的事情吗?谢谢.

ios vfr-reader

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