小编mik*_*kej的帖子

如何为脚本或批处理文件设置rails_env

我把我的批处理文件放在lib文件夹中并使用rails db配置,像这样的active-record.

require "#{File.dirname(__FILE__)}/../config/environment.rb"

class Batch
  def hello
    Message.new do |t|
      t.title = "hello"
      t.save
    end
  end
end

batch = Batch.new
batch.hello
Run Code Online (Sandbox Code Playgroud)

当执行批处理时

ruby lib/batch.rb
Run Code Online (Sandbox Code Playgroud)

在开发环境中没关系

但生产环境仍然保存开发数据库......

我如何设置rails_env batch.rb这样

ruby lib/batch.rb RAILS_ENV=production
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

如何在Ruby中定义没有'class'语句的类?

我有很多类要定义,但我不想重复以下工作:

class A < ActiveRecord::Base
end
Run Code Online (Sandbox Code Playgroud)

是否有任何声明语句来定义类而不使用该class语句?

ruby class

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

在RoR中重定向:使用redirect_to和head:moving_permanently中的哪一个?

我们正在创建一个网站,该网站接收生成的传入链接,并将点击它的用户转发到另一个网站,同时在我们的数据库中保存操作记录.我想这基本上就像AdSense这样的广告服务.

但是,重定向用户的最佳方法是什么?

我认为html-meta-tag-redirects是不可能的.

那么还有其他选择吗?

head :moved_permanently, :location => "http://www.domain.com/"
Run Code Online (Sandbox Code Playgroud)

这个是301重定向.下一个是302:

redirect_to "http://www.domain.com"
Run Code Online (Sandbox Code Playgroud)

还有其他人吗?哪个最适合我们的情况?链接是高度动态的,并且一直在变化.

我们希望确保我们不违反任何现有标准,当然我们不希望搜索引擎将我们标记为垃圾邮件发送者(我们不是,顺便说一下).

谢谢!

ruby redirect ruby-on-rails http http-headers

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

Sinatra视图中的相对路径问题

我在我的erb文件中发布图像之前使用以下代码检查文件是否存在.这是一个ruby/sinatra应用程序 - 而不是rails.

<% @imagename = @place.name + ".jpg" %> 
<% if FileTest.exist?( "/Users/Tim/projects/game/public/" + @imagename ) %> 
<p><img src= '<%= @imagename %>' width="400" height="300" /> </p> 
<% end %> 
Run Code Online (Sandbox Code Playgroud)

当我将它发布到Heroku时,它显然是行不通的.

我尝试使用相对路径,但我无法让它工作:

<% if FileTest.exist?( "/" + @imagename ) %> 
Run Code Online (Sandbox Code Playgroud)

ruby erb sinatra

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

使用JNA调用CreateFile会产生UnsatisfiedLinkError:查找函数'CreateFile'时出错:找不到指定的过程

我正在尝试CreateFile使用JNA在Windows 7上调用Win32的功能,目的是执行此答案的Java实现,以检查文件是否正由另一个进程使用.

我到目前为止的代码是:

import com.sun.jna.Native;
import com.sun.jna.examples.win32.Kernel32;

public class CreateFileExample {

    static int GENERIC_ACCESS = 268435456;
    static int EXCLUSIVE_ACCESS = 0;
    static int OPEN_EXISTING = 3;

    public static void main(String[] args) {
        Kernel32 kernel32 = 
            (Kernel32) Native.loadLibrary("kernel32", Kernel32.class);
        kernel32.CreateFile("c:\\file.txt", GENERIC_ACCESS, EXCLUSIVE_ACCESS,
            null, OPEN_EXISTING, 0, null);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,运行它会引发异常:

java.lang.UnsatisfiedLinkError: Error looking up function 'CreateFile': The specified procedure could not be found.

如果我"kernel32"loadLibrary调用更改为无效的东西,那么我得到The specified module could not be found这样的结果表明正在从库路径中正确找到DLL,但是我调用的方式有问题CreateFile. …

java jna createfile

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

wget for Windows - 使用--post-data with quotes

我正在使用Windows的wget,我想指定一个--post-data过滤器(并避免使用--post-file过滤器),但我很难让它工作.这可能是因为双引号内有字符串,如下所示:

wget "http://www.somesite.com/wfs" --header="Content-Type: text/xml; charset=UTF-8"
--user=username --password=password --no-check-certificate
--post-data="big long string with "quotes" in it" --output-document=C:\Test.xml
Run Code Online (Sandbox Code Playgroud)

有没有其他人成功地--post-data在wget for Windows中工作?我错过了什么吗?

干杯

安迪

post wget

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

Ruby二维数组:查找对象的坐标

假设,我有一个二维数组A,并且它声称在其中的某个地方有一个对象my_element.找出坐标的最快方法是什么?我使用的是Ruby 1.8.6.

ruby arrays coordinates

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

以编程方式在Python中传递未知数量的参数

我想要一个简单的方法来插入一个函数和参数,以便稍后执行,所以我可以有一种包装它.

在这种情况下,我想用它来进行基准测试,例如:

def timefunc(fn, *args):
   start = time.clock()
   fn(args)
   stop = time.clock()
   return stop - start
Run Code Online (Sandbox Code Playgroud)

如何传递参数数量未知的参数?如何找到参数个数?一旦我知道参数的数量,我怎么能调用该函数?

python

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

如何用gc处理静态变量

垃圾收集器如何处理静态变量以及它们在哪里分配内存?在堆或堆栈上(作为成员变量)请为我澄清这一点.

java garbage-collection

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

在Ruby中使用Map和Select方法迭代遍历数组

我正在开发一个应用程序,我坚持使用以下代码.

我有一个链接数组,其中包含用户在表单中发布的一些链接.比方说我的数组是bunch1 = ["google.com","http://yahoo.com"]

现在,在我将它们存储到数据库之前,我需要确保每个链接都在开头添加了"http://",因为我在ActiveRecord对象中有'validate:'逻辑.

所以我的逻辑是我将迭代数组并检查数组中每个链接之前是否存在"http://"字符串段.很明显,我必须在我的数组中的"google.com"之前添加"http://"字符串段.

所以我写了这样的代码:

bunch2=bunch1.map { |y| y="http://"+y }
Run Code Online (Sandbox Code Playgroud)

但是它创建了一个像bunch2 = ["http://google.com","http:// http://yahoo.com"]这样的一堆数组

正如您所看到的,它在"http://yahoo.com"之前添加了额外的"http://".

为了解决这个问题,我修改了上面这样的代码:

bunch2 = bunch1.select { |x|  x !~ /http/ }.map { |y| y="http://"+y }
Run Code Online (Sandbox Code Playgroud)

但它正在生成一个类似的数组 bunch2 = ["http://google.com"],因为使用select方法的正则表达式正在消除yahoo.com

有人可以帮我解决这个问题.提前致谢...

ruby ruby-on-rails ruby-on-rails-3

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