小编Kyl*_*oon的帖子

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

在Ruby on Rails中重用控制器之间代码的最佳实践

我有一些我想分享的控制器方法.在轨道上的红宝石中执行此操作的最佳做​​法是什么?我应该创建一个我的控制器扩展的抽象类,还是应该创建模块并将其添加到每个控制器?以下是我想要分享的控制器方法:

def driving_directions
  @address_to = params[:address_to]
  @address_from = params[:address_from]
  @map_center = params[:map_center_start]

  # if we were not given a center point to start our map on
  # let's create one.
  if !@map_center && @address_to
    @map_center = GeoKit::Geocoders::MultiGeocoder.geocode(@address_to).ll
  elsif !@map_center && @address_from
    @map_center = GeoKit::Geocoders::MultiGeocoder.geocode(@address_from).ll
  end
end

def printer_friendly
  starting_point = params[:starting_point].split(',').collect{|e|e.to_f}
  ne = params[:ne].split(',').collect{|e|e.to_f}
  sw = params[:sw].split(',').collect{|e|e.to_f}
  size = params[:size].split(',').collect{|e|e.to_f}
  address = params[:address]

  @markers = retrieve_points(ne,sw,size,false)
  @map = initialize_map([[sw[0],sw[1]],[ne[0],ne[1]]],[starting_point[0],starting_point[1]],false,@markers,true)
  @address_string = address
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

如何在Java中使用3DES加密/解密?

我编写的每个使用3DES在Java中编码字符串的方法都无法解密回原始字符串.有没有人有一个简单的代码片段,只能编码,然后将字符串解码回原始字符串?

我知道我在这段代码中某处犯了一个非常愚蠢的错误.以下是我到目前为止一直在使用的内容:

**注意,我没有从encrypt方法返回BASE64文本,而且我在解密方法中不是base64 un-encoding,因为我试图看看我是否在BASE64部分拼图中犯了错误.

public class TripleDESTest {

    public static void main(String[] args) {

        String text = "kyle boon";

        byte[] codedtext = new TripleDESTest().encrypt(text);
        String decodedtext  = new TripleDESTest().decrypt(codedtext);

        System.out.println(codedtext);
        System.out.println(decodedtext);
    }

    public byte[] encrypt(String message) {
        try {
            final MessageDigest md = MessageDigest.getInstance("md5");
            final byte[] digestOfPassword = md.digest("HG58YZ3CR9".getBytes("utf-8"));
            final byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24);
            for (int j = 0,  k = 16; j < 8;)
            {
                keyBytes[k++] = keyBytes[j++];
            }

            final SecretKey key = new SecretKeySpec(keyBytes, "DESede");
            final IvParameterSpec …
Run Code Online (Sandbox Code Playgroud)

java encryption 3des

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

我可以做STI并仍然使用多态路径助手吗?

我正在使用单表继承并对所有子类都有注释.我只为所有不同的STI类型使用1个控制器.当form_for帮助程序为子类型生成URL时,它会尝试使用子类型的帮助程序,但我希望它使用父类的帮助程序.

这是我得到的错误:

undefined method `subclasstypename_comments_path' for #<ActionView::Base:0x41ef27c>
Run Code Online (Sandbox Code Playgroud)

它应该使用的路径助手是

parentclasstypename_comments_path
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

如何使用自定义时区显示日期?

假设我有一个字符串代表一个如下所示的日期:

"格林威治标准时间2008年7月17日17:08:48 GMT"

所以我将该字符串解析为这样的日期对象:

DateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss ZZZ yyyy");
Date fromDate = (Date)formatter.parse(fromDateString);
Run Code Online (Sandbox Code Playgroud)

这给了我正确的日期对象.现在我想将此日期显示为CDT值.

我尝试了很多东西,但我无法让它正常工作.必须有一个使用DateFormat类的简单方法才能使其工作.有什么建议?我最后一次尝试是这样的:

formatter.setTimeZone(toTimeZone);
String result = formatter.format(fromDate);
Run Code Online (Sandbox Code Playgroud)

java timezone date date-format

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

如何强制gem升级到gem 1.3.1

我正在尝试安装这样的宝石:

C:\InstantRails\rails_apps\foodmarksthespot>ruby script/plugin install git://github.com/lazyatom/engines.git
Run Code Online (Sandbox Code Playgroud)

返回此消息:

Rails requires RubyGems >= 1.3.1 (you have 1.2.0). Please `gem update --system` and try again.
Run Code Online (Sandbox Code Playgroud)

但是当我尝试更新时使用:

gem update --system
Run Code Online (Sandbox Code Playgroud)

它说:

Updating RubyGems
Nothing to update
Run Code Online (Sandbox Code Playgroud)

这是在Windows上.如何强制它将系统升级到特定版本?

ruby rubygems ruby-on-rails

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

如何在使用Chef和Vagrant时禁用默认的nginx站点?

我正在使用Berkshelf,Chef和Vagrant,我正在尝试配置在nginx上运行的自定义站点.我正在使用opscode nginx配方,然后为自定义站点编写自己的配方.当我运行vagrant时,我得到一个关于不禁用默认nginx站点的错误.我发现了几个不同的建议,但似乎没有任何效果.

错误:

STDOUT:
STDERR: nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-    enabled/kyleboon.me:2
nginx: configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud)

我的Berksfile:

site :opscode

metadata
cookbook 'nginx'
Run Code Online (Sandbox Code Playgroud)

我定义的'roles/web.json'角色:

{
  "name": "web",
  "chef_type": "role",
  "json_class": "Chef::Role",
  "description": "The base role for systems that serve HTTP traffic",
  "default_attributes": {
    "nginx": {
      "default_site_enabled": false
    },
    "app": {
      "name": "kyleboon.me",
      "web_dir": "/var/data/www/kyleboon.me"
    },
    "user":{
      "name": "vagrant"
    }
  },
  "run_list": [
    "recipe[nginx]",
    "recipe[kyleboon.me]"
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是我添加的nginx网站的recipes/default/default.rb:

nginx_site 'default' do
  action :disable
end

%w(public logs).each …
Run Code Online (Sandbox Code Playgroud)

nginx chef-infra vagrant

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

如何使用Java ClassLoader从类路径加载文件?

我想使用ClassLoader加载Properties类的属性文件.为了讨论的目的,我简化了以下代码以删除错误处理:

loader = this.getClass().getClassLoader();
in = loader.getResourceAsStream("theta.properties");
result = new Properties();
result.load(in);
Run Code Online (Sandbox Code Playgroud)

在与此类相同的目录中,我有文件"theta.properties",但InputStream始终为null.我把文件放在错误的地方吗?我正在使用eclipse及其设置将类文件构建到源文件夹 - 所以这应该不是问题.

我在JavaDoc中找不到任何东西让ClassLoader告诉我正在搜索什么类路径.

java properties classloader

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

当我尝试为回形针添加附件字段时,为什么db:migrate失败?

我想添加两个不同的附件字段.迁移失败了我使用bundler或不使用bundler运行它.(bundle exec rake db:migrate或者只是rake db:migrate).

==  AddDiagramToQuestion: migrating ===========================================
-- change_table(:questions)
rake aborted!
An error has occurred, this and all later migrations canceled:

undefined method `has_attached_file' for #<ActiveRecord::ConnectionAdapters::Table:0x0000012b003b20>
 /Users/kboon/Documents/workspace/quiztaker/db/migrate/20111213182927_add_diagram_to_question.rb:6:in `block in up'
 /Users/kboon/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:244:in `change_table'
Run Code Online (Sandbox Code Playgroud)

迁移看起来像这样:

class AddDiagramToAnswer < ActiveRecord::Migration
  def self.up
    change_table :answers do |t|
      t.has_attached_file :diagram
    end
  end

  def self.down
    drop_attached_file :answers, :diagram
  end
end
Run Code Online (Sandbox Code Playgroud)

该模型还引用了回形针添加的方法,应用程序运行正常,因此根本没有安装回形针.我甚至尝试在迁移中添加了需要'paperclip',但这根本没有帮助.

ruby-on-rails paperclip ruby-on-rails-3.1

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

Active Record是否有默认的英文翻译文件?

我正在将应用程序的rails应用程序升级到2.3.2并且我发现我无法显示ActiveRecord的默认验证错误消息,因为我没有它的转换文件.

这是报告的错误:

translation missing: en-US, activerecord, errors, template, header
translation missing: en-US, activerecord, errors, template, body
Email translation missing: en-US, activerecord, errors, models, user, attributes, email, taken
Run Code Online (Sandbox Code Playgroud)

有谁知道我在哪里可以找到一个默认的英文翻译文件,其中包含验证可能使用的所有字符串?

activerecord translation localization ruby-on-rails

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