我有一些我想分享的控制器方法.在轨道上的红宝石中执行此操作的最佳做法是什么?我应该创建一个我的控制器扩展的抽象类,还是应该创建模块并将其添加到每个控制器?以下是我想要分享的控制器方法:
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) 我编写的每个使用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) 我正在使用单表继承并对所有子类都有注释.我只为所有不同的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) 假设我有一个字符串代表一个如下所示的日期:
"格林威治标准时间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) 我正在尝试安装这样的宝石:
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上.如何强制它将系统升级到特定版本?
我正在使用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) 我想使用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告诉我正在搜索什么类路径.
我想添加两个不同的附件字段.迁移失败了我使用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',但这根本没有帮助.
我正在将应用程序的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)
有谁知道我在哪里可以找到一个默认的英文翻译文件,其中包含验证可能使用的所有字符串?
ruby ×4
java ×3
3des ×1
activerecord ×1
chef-infra ×1
class ×1
classloader ×1
date ×1
date-format ×1
encryption ×1
localization ×1
nginx ×1
paperclip ×1
properties ×1
rubygems ×1
timezone ×1
translation ×1
vagrant ×1