小编Jay*_*dse的帖子

如何在mruby中默认引发错误/异常?

我开始使用mruby,并发现很难在我的代码中发生错误,但是没有错误报告。也许我做错了。发生错误时如何显示错误?

C代码摘录:

mrb = mrb_open();
FILE *f = fopen("example.rb", "r");
mrb_load_file(mrb, f);
fclose(f);
// more C code...
Run Code Online (Sandbox Code Playgroud)

Ruby代码失败,没有报告:

# example.rb
def my_method
  call_undefined_method
end
my_method()
Run Code Online (Sandbox Code Playgroud)

从错误中解救出来以显示存在错误的Ruby代码:

# example.rb
def my_method
  call_undefined_method
rescue => e
  puts "Error: #{e.message}"
end
my_method()
Run Code Online (Sandbox Code Playgroud)

mruby

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

Ruby 1.9.2 + Rails 3.0.3 + postgresql + windows vista

我想在我的Windows Vista机器上安装Ruby1.9.2/Rails3.0.3,并将PostgreSQL 9.0作为我的数据库.

我在网上看到了许多不同的指示,说明哪些有效,哪些无效.

谁能告诉我必须安装哪些gem才能让Ruby1.9.2/Rails 3.0.3在Windows Vista上驱动PostgreSQL 9.0?

我感谢你能给我的任何帮助.

postgresql windows-vista ruby-on-rails-3 ruby-1.9.2

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

Ruby:Rails:MRI和JRuby

我已经在Ubuntu 11.04上将我的Rails 3.0.10/MRI应用程序移植到Ubuntu 11.04上的JRuby 1.6.4.我的目标是到达一个我必须执行以下操作才能在JRuby下运行应用程序的地方.

railsapp1> rbenv local jruby-1.6.4
railsapp1> rails server
Run Code Online (Sandbox Code Playgroud)

并让应用程序在MRI下工作,

railsapp1> rbenv local 1.9.2-p290
railsapp1> rails server
Run Code Online (Sandbox Code Playgroud)

这个问题的第一部分是解决宝石问题.为了使这个过程在没有代码更改的情况下工作,我在Rails Gemfile中执行了以下操作

platforms :mri do
    gem 'mysql2', '~>0.2.11'
end
platforms :jruby do
    gem 'jruby-openssl'
    gem 'activerecord-jdbcmysql-adapter'
end
Run Code Online (Sandbox Code Playgroud)

这些gem语句是通过使用不同的MRI/JRuby和SQLite/MySQL组合创建虚拟轨道应用程序,然后从生成的Gemfiles中为每个组合获取gem语句而使用暴力方法获得的.

尽管如此,这并不是很好.我的config/database.yml文件如下所示:

development:
    adapter: mysql2
    database: doodad
    username: doodad
    password: doodad
    host: localhost
Run Code Online (Sandbox Code Playgroud)

此config/database.yml文件仅适用于MRI版本.对于JRuby版本,config/database.yml文件如下所示:

development:
    adapter: mysql
    database: doodad
    username: doodad
    password: doodad
    host: localhost
Run Code Online (Sandbox Code Playgroud)

即文件之间的唯一区别是数据库适配器的名称(mysql vs mysql2).有没有办法告诉database.yml文件或系统初始化程序根据Ruby环境是MRI还是JRuby选择适配器?

ruby mysql ruby-on-rails jruby

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

如何使用Powershell将.Net Web应用程序部署到Azure

我在Azure中有一个"Web应用程序",我使用Visual Studio部署/发布.Net Web应用程序.(构建 - >发布),它的工作原理.

我希望能够使用Powershell脚本部署/发布我的应用程序.我得到以下脚本来为构建部分工作:

CMD> "c:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe" WebApplication1.sln
Run Code Online (Sandbox Code Playgroud)

为了使它也部署,我需要添加一些参数:

CMD> "c:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe" WebApplication1.sln /p:DeployOnBuild=true /p:PublishProfile="C:\Users\jgodse\Documents\Visual Studio 2015\Projects\WebApplication1\WebApplication1\Properties\PublishProfiles\jg-7-web-app-1 - Web Deploy.pubxml" /p:Configuration=Release
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

Build FAILED.

"c:\Users\jgodse\Documents\Visual Studio 2015\Projects\WebApplication1\WebApplication1.sln" (default target) (1) ->
"c:\Users\jgodse\Documents\Visual Studio 2015\Projects\WebApplication1\WebApplication1\WebApplication1.csproj" (default target) (2) ->
(MSDeployPublish target) ->
  C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5): msdeploy error ERROR_USER_UNAUTHORIZED: Web deployment task failed. (Connected to the remote computer ("jg-7-web-app-1.scm.azurewebsites.net") using the Web Management Service, but could not authorize. Make sure that you are using the correct user name …
Run Code Online (Sandbox Code Playgroud)

msbuild powershell credentials azure azure-web-sites

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

如何将Azure映像从一个区域复制到另一区域

我在Azure区域(加拿大中央)的Azure映像中有一个(系统准备/通用的)服务器模板。我想使用它在其他Azure区域(美国中部)中创建Azure VM。没用

因此,我需要该Azure Image也驻留在美国中部。如何将Azure映像从一个Azure区域复制到另一个区域?

azure

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

Ruby vs JRuby:Time.new

我有一个网络应用程序,大多数情况下使用MRI Ruby和JRuby.但...

当我使用MRI时,我可以做到这一点.

> rails console
irb(main):001:0> a=Time.new(1,1,1,1,1)
=> 0001-01-01 01:01:00 -0500
Run Code Online (Sandbox Code Playgroud)

即它在指定时间内创建一个新的Time对象.

当我切换到JRuby时,我这样做

> rails console
irb(main):001:0> a=Time.new(1,1,1,1,1)
ArgumentError: wrong number of arguments (5 for 0)
     from (irb):2: in `evaluate`
     from org/jruby/RubyKernel.java:1088 in `eval`
     from /home/user/.rbenv/versions/jruby-1.6.4/lib/ruby/1.8/irb.rb:158 in `eval_input`
     from /home/user/.rbenv/versions/jruby-1.6.4/lib/ruby/1.8/
....
Run Code Online (Sandbox Code Playgroud)

如何在JRuby中创建一个Time对象,其中包含我控制的年,月,日,小时和分钟?如果是这样,这可以用于MRI Ruby吗?

我不知道这是否相关,但是

irb(main):002:0> RUBY_VERSION
"1.8.7"
Run Code Online (Sandbox Code Playgroud)

我的问题可能是因为我处于1.8.7模式吗?如果是这样,如何将我的rbenv/jruby-1.6.4安装切换为RUBY_VERSION = 1.9.2?

ruby jruby ruby-1.9.2

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

Twilio app; twilio-ruby(3.4.2),SSL错误

我已经按照Twilio github页面上的示例代码进行操作,但它不起作用.在我的Rails控制台中,它看起来像这样:

irb(main):039:0> require 'twilio-ruby'
=> nil
irb(main):040:0* account_sid='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
=> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
irb(main):041:0> auth_token='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
=> "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
irb(main):042:0> client=Twilio::REST::Client.new account_sid, auth_token
=> <Twilio::REST::Client @account_sid=AC1322312300a752f6e84a8254535ecce5>
irb(main):043:0> client.account.sms.messages.create :from=>'16135551234', :to=>'16135551212',     :body=>"Ada is fat"
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B:  certificate verify failed
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:678:in `connect'
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:678:in `block in connect'
    from C:/Ruby192/lib/ruby/1.9.1/timeout.rb:44:in `timeout'
    from C:/Ruby192/lib/ruby/1.9.1/timeout.rb:87:in `timeout'
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:678:in `connect'
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:637:in `do_start'
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:626:in `start'
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:1168:in `request'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/net_http_ext.rb:51:in `request'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/twilio-ruby-3.4.2/lib/twilio-ruby/rest/client.rb:214:in `connect_and_send'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/twilio-ruby-3.4.2/lib/twilio-ruby/rest/client.rb:138:in `block (2 levels) …
Run Code Online (Sandbox Code Playgroud)

ruby twilio

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

Java到JRuby到Resque

我有一个混合Web应用程序,它在同一个Tomcat中运行Java WAR文件和JRuby WAR文件.

我们决定使用(JRuby)Resque作为我们的工作队列.对入队作业的调用如下所示:

Resque.enqueue(FooWorker, 111)
Run Code Online (Sandbox Code Playgroud)

其中FooWorker是JRuby端定义并使用的工作类(并包含在JRuby WAR文件中),当JRuby Resque rake任务处理队列中的作业时,它将被调用.

我想让Java代码能够将要由JRuby FooWorker类处理的Resque队列上的任务排队.

我在https://github.com/tc/call-jruby-from-java-example上查看了Tommy Cheng的代码.java文件

//JavaInterfaceExample.java
interface JavaInterfaceExample{
  int add(int a, int b);
}
Run Code Online (Sandbox Code Playgroud)

和ruby文件

#JrubyAdderImpl.rb
require 'java'

class JrubyAdderImpl
    include Java::JavaInterfaceExample

    java_signature 'int add(int, int)'
    def add(a, b)
        a+b
    end
end
Run Code Online (Sandbox Code Playgroud)

我怀疑我的代码看起来像:java文件

//ResqueInterfaceExample.java
interface ResqueInterfaceExample{
  int resque_enqueue_foojob(int a);
}
Run Code Online (Sandbox Code Playgroud)

红宝石文件

#JrubyResqueImpl.rb
require 'java'
require 'resque'

class JrubyResqueImpl
    include Java::ResqueInterfaceExample

    java_signature 'int resque_enqueue_foojob(int)'
    def resque_enqueue_foojob(a)
    Resque.enqueue(FooWorker, a) 
    end
end
Run Code Online (Sandbox Code Playgroud)

我的FooWorker是一个类,它位于rails app的爆炸war文件目录中,文件是app/workers/foo_worker.rb

我需要做些什么来确保jruby编译器可以访问FooWorker和Resque JRuby类来正确编译代码?

jrubyonrails resque jruby-java-interop

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

Rails:Ajax:更改Onload

我有一个for的web布局看起来像这样

<html>
  <head>
  </head>

  <body>
    <div id="posts">
      <div id="post1" class="post" >
         <!--stuff 1-->
      </div>
      <div id="post2" class="post" >
         <!--stuff 1-->
      </div>

      <!-- 96 more posts -->

      <div id="post99" class="post" >
         <!--stuff 1-->
      </div>
    </div>          

  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我希望能够加载并呈现一个空白的页面,然后在页面加载时调用一个函数进入并加载帖子并动态更新页面.

在Rails中,我尝试使用"link_to_remote"来更新所有元素.如果它是ajax请求(request.xhr?),我还调整了posts控制器以呈现帖子集合.它运行良好,速度非常快.但是,单击链接会触发空白div的更新.我希望在加载页面时发生相同的操作,这样我就不必输入链接.

是否有一个Rails Ajax助手或RJS函数或Rails中的东西,我可以用来在页面加载和渲染(没有帖子)后触发加载"帖子"?

(如果推出了putsch,我将只从link_to_remote调用中复制生成的JS代码,并从主体上的onload处理程序调用它).

ajax ruby-on-rails onload

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