小编Dav*_*ave的帖子

Ruby on Rails - Paperclip和动态参数

我正在使用Paperclip为Ruby on Rails编写一些图像上传代码,我有一个可行的解决方案,但它非常hacky所以我真的很感激如何更好地实现它的建议.我有一个'资产'类,包含有关上传图像的信息,包括Paperclip附件,以及封装尺寸信息的'Generator'类.每个"项目"都有多个资产和发电机; 所有资产应根据每台发电机规定的尺寸调整大小; 因此,每个项目都有一定的规模,其所有资产都应具备.

发电机型号:

class Generator < ActiveRecord::Base
  attr_accessible :height, :width

  belongs_to :project

  def sym
    "#{self.width}x#{self.height}".to_sym
  end
end
Run Code Online (Sandbox Code Playgroud)

资产模型:

class Asset < ActiveRecord::Base
  attr_accessible :filename,
    :image # etc.
  attr_accessor :generators

  has_attached_file :image,
    :styles => lambda { |a| a.instance.styles }

  belongs_to :project

  # this is utterly horrendous
  def styles
    s = {}
    if @generators == nil
      @generators = self.project.generators
    end

    @generators.each do |g|
      s[g.sym] = "#{g.width}x#{g.height}"
    end
    s
  end
end
Run Code Online (Sandbox Code Playgroud)

资产控制器创建方法:

  def create
    @project = Project.find(params[:project_id])
    @asset = Asset.new …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails paperclip

8
推荐指数
2
解决办法
3750
查看次数

无法让ActiveMQ重新发送我的消息

我有一个用Java编写的单线程ActiveMQ使用者.我要做的就是从队列中接收()一个消息,尝试将其发送到Web服务,如果成功则确认()它.如果Web服务调用失败,我希望消息保留在队列中并在超时后重新发送.

除了重新发送部分之外,它或多或少都在工作:每次重新启动我的消费者时,它会为仍然在队列中的每个消息收到一条消息,但是在发送它们之后,消息永远不会被重新发送.

我的代码看起来像:

public boolean init() throws JMSException, FileNotFoundException, IOException {
    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, password, url);
    RedeliveryPolicy policy = new RedeliveryPolicy();
    policy.setInitialRedeliveryDelay(500);
    policy.setBackOffMultiplier(2);
    policy.setUseExponentialBackOff(true);

    connectionFactory.setRedeliveryPolicy(policy);
    connectionFactory.setUseRetroactiveConsumer(true); // ????
    Connection connection = connectionFactory.createConnection();

    connection.setExceptionListener(this);
    connection.start();

    session = connection.createSession(transacted, ActiveMQSession.INDIVIDUAL_ACKNOWLEDGE);
    destination = session.createQueue(subject); //???

    consumer = session.createConsumer(destination);
    //consumer.setMessageListener(this); // message listener had same behaviour

}

private void process() {
    while(true) {
        System.out.println("Waiting...");
        try {
            Message message = consumer.receive();
            onMessage(message);
        } catch (JMSException e) {
            e.printStackTrace();
        }
        try {
            Thread.sleep(500);
        } …
Run Code Online (Sandbox Code Playgroud)

java activemq-classic

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

Node.js/npm - 无论如何判断包是否是纯JS?

我注意到,在尝试使用npm(例如神经,一个"微框架")安装看似简单的节点包时,我经常遇到某种形式的依赖性疼痛.在进行了一些挖掘后,我对bcrypt模块进行了严格的跟踪,这个模块显然是用C/C++编写的,必须在软件包管理器下载之后进行编译.

不幸的是,似乎你希望这个在Windows上运行,答案是(来自其中一个bcrypt问题线程)"安装Linux VM".所以今天早些时候我做到了这一点,并开始遇到其他依赖项(你甚至需要安装某些未命名的apt软件包才能考虑构建,尽管安装了GCC),然后最终看到另一个C编译器错误(关于某些软件包或其他人无法找到"Arrays.c"我认为),我实际上放弃了,而是从神经切换到表达.具有讽刺意味的是,在Linux和Windows上使用npm进行更大,更复杂的快速安装没有一个问题.

所以,我的问题是:是否有任何过滤器/依赖关系跟踪可以让您查看一个包是否除了节点核心之外还有其他依赖关系?因为对我来说,节点的诱惑力是"Javascript中的一切",而这种东西很难消除错觉.事实上,尽管我已经花了不少时间使用C/C++,但每当我看到这些日子要求"制造"某些东西时,我通常会朝另一个方向尖叫.:)

javascript dependencies node.js npm

6
推荐指数
2
解决办法
1983
查看次数

寻找HTML5/Javascript PDF页面翻转器

我正在寻找能够显示PDF的非Flash'页面翻页器'.我给出的例子(在Flash中)是:http://www.mitsubishi-motors.nl/digital/1043/index/book/outlanderbrochure.aspx

我查看了Uniflip,但它似乎只是Flash.FlipBook看起来不错(jQuery)但似乎不支持PDF.

我们有能力为此付出代价,但我们没有时间自己建造它.有谁知道那里有什么?

谢谢!

html javascript pdf flip

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

通过引用将参数可移植地传递给PHP的ReflectionMethod :: invokeArgs

看起来有点用词不当,因为在PHP 5.3中不推荐使用引用...无论如何,我要做的是使用反射编写单元测试框架,允许您将参数传递给需要引用的方法.例如

class Bar {
    function TestMethod($arg1, &$result) {
        $result = 'hello';
        return true;
    }
}

$rc = new ReflectionMethod('Bar', 'TestMethod');
$return_val = $rc->invokeArgs($instance, $arguments);
Run Code Online (Sandbox Code Playgroud)

现在,我在http://www.phwinfo.com/forum/comp-lang-php/273316-how-invoke-reflectionmethod-pass-variable-reference-asargument.html上发现了一个论坛帖子,这让我陷入困境变量引用到我的$ arguments数组中:

$arguments = array('arg1', &$byref_result);
Run Code Online (Sandbox Code Playgroud)

这确实有效但是给出了"不推荐使用:调用时间传递引用已被弃用"错误.我想确保这些代码是向前兼容的,所以如果它们在PHP 6中完全删除它我将不会被搞砸.显然,由于测试框架的不足,我不想重写项目中的任何代码.任何想法或建议?谢谢!:)

PS我试图查看phpunit的文档,看看它是否可以做到,但该网站似乎暂时停止.任何链接到"不重新发明轮子"的解决方案都非常受欢迎,尽管我对这个问题本身也很好奇.

php reflection pass-by-reference

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