小编kap*_*pso的帖子

杰克逊 - 动态地抑制属性的序列化(写入)

我正在尝试使用Jackson将Java对象转换为Tomcat/jersey中的JSON对象.并希望动态地抑制某些属性的序列化(写入).

我可以使用JsonIgnore,但我想在运行时做出忽略决定.有任何想法吗??

因此,作为下面的示例,当我将User对象序列化为JSON时,我想要禁止"id"字段.

new ObjectMapper.writeValueAsString(user);


class User {

private String id = null;
private String firstName = null;
private String lastName = null;

//getters
//setters

}//end class
Run Code Online (Sandbox Code Playgroud)

java json jackson

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

延迟工作不会开始使用Capistrano

我无法使用capistrano配方启动延迟的工作流程.这是我得到的错误.

/usr/local/lib/ruby/gems/1.9.1/gems/delayed_job-2.1.1/lib/delayed/command.rb:62:in `mkdir': File exists - /my_app/server/releases/20101120001612/tmp/pids (Errno::EEXIST)
Run Code Online (Sandbox Code Playgroud)

这是capistrano代码(注意:我已经尝试了两个启动/重启命令)

after "deploy:restart", "delayed_job:start"
task :start, :roles => :app do          
  run "cd #{current_path}; RAILS_ENV=#{rails_env} script/delayed_job -n 2 start"
end
Run Code Online (Sandbox Code Playgroud)

部署日志中的更多细节错误 -

executing command
 [err :: my_server] /usr/local/lib/ruby/gems/1.9.1/gems/delayed_job-2.1.1/lib/delayed/command.rb:62:in `mkdir': File exists - /my_app/server/releases/20101120001612/tmp/pids (Errno::EEXIST)
 [err :: my_server] from /usr/local/lib/ruby/gems/1.9.1/gems/delayed_job-2.1.1/lib/delayed/command.rb:62:in `daemonize'
 [err :: my_server] from script/delayed_job:5:in `<main>'
    command finished
failed: "sh -c 'cd /my_app/server/current; RAILS_ENV=production script/delayed_job -n 3 restart'" on myserevr
Run Code Online (Sandbox Code Playgroud)

这是一个Rails 3应用程序(v3.0.3)

capistrano ruby-on-rails delayed-job

10
推荐指数
3
解决办法
4731
查看次数

从某一点来说最近的地方

我有下表

create table places(lat_lng point, place_name varchar(50));

insert into places values (POINT(-126.4, 45.32), 'Food Bar');
Run Code Online (Sandbox Code Playgroud)

什么应该是让所有地方接近特定纬度/经度的查询?

gis已安装.

postgresql postgis postgresql-9.1

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

Rails v3/Ruby 1.9.2中的字符编码问题

当我从文件中读取内容时,有时会出现此错误" UTF-8中的无效字节序列 ".注意 - 只有在字符串中有一些特殊字符时才会发生这种情况.我试过没有"r:UTF-8"打开文件,但仍然得到相同的错误.

open(file, "r:UTF-8").each_line { |line| puts line.strip(",") } # line.strip generates the error
Run Code Online (Sandbox Code Playgroud)

文件内容:

# encoding: UTF-8
290919,"SE","26","Sk‰l","",59.4500,17.9500,, # this errors out
290956,"CZ","45","HornÌ Bradlo","",49.8000,15.7500,, # this errors out
290958,"NO","02","Svaland","",58.4000,8.0500,, # this works
Run Code Online (Sandbox Code Playgroud)

这是我从外面获得的CSV文件,我试图将其导入我的数据库,它顶部没有"#encoding:UTF-8",但我添加了这个,因为我读到了某处它将解决这个问题,但事实并非如此.:(

环境:

  • Rails v3.0.3
  • ruby 1.9.2p0(2010-08-18修订版29036)[x86_64-darwin10.5.0]

ruby ruby-on-rails character-encoding

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

MySQL外键问题

定义外键是否也定义了索引?我有mysql v5.1.46&我正在查看MySQL Administrator工具,它显示外键作为索引,所以我想确认一下?

mysql sql foreign-keys

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

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

CodeIgniter - 如何从URL隐藏index.php

这就是我的.htaccess样子.它.htaccess位于/www/scripts目录中,该目录是codeigniter system目录的父目录,也包含index.php.我mod_rewrite在Apache 2.2.x中启用了.这是在Ubuntu 9.10服务器上.

我按照这个链接,但它不起作用.我在apache2中有什么需要做的,任何特定的配置都可以这样做吗?

RewriteEngine on 
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)

php url .htaccess mod-rewrite codeigniter

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

Rails - 逃避SQL参数

我在我的rails模型中做了一些简单的SQL(对于纯粹主义者来说这只适用于复杂的SQL :)

由于我没有使用find*/condition方法,是否有一个帮助方法,我可以直接使用它?

sql database sql-injection ruby-on-rails

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

错误阻止在Sinatra应用程序中不起作用

我有以下Sinatra应用程序,我正在测试error块,但它似乎没有工作.

这是我的sinatra应用程序:

require 'rubygems'
require 'sinatra'

error do
  puts "----> Failed"
  $stdout.print "----> Failed"
end

get "/*" do
  raise "Error!!"
end
Run Code Online (Sandbox Code Playgroud)

我正在使用sinatra(1.3.3)

sinatra

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

Postgres结合多个索引

我有以下表/索引 -

CREATE TABLE test
(
   coords geography(Point,4326), 
   user_id varchar(50), 
   created_at timestamp
);
CREATE INDEX ix_coords ON test USING GIST (coords);
CREATE INDEX ix_user_id ON test (user_id);
CREATE INDEX ix_created_at ON test (created_at DESC);
Run Code Online (Sandbox Code Playgroud)

这是我想要执行的查询:

select * 
from updates 
where ST_DWithin(coords, ST_MakePoint(-126.4, 45.32)::geography, 30000) 
and user_id='3212312' 
order by created_at desc
limit 60
Run Code Online (Sandbox Code Playgroud)

当我运行查询时,它只使用ix_coords索引.如何确保Postgres 对查询使用ix_user_idix_created_at索引?

这是一个新表,我在其中批量插入生产数据.在总排test表:15069489

我正在使用(effective_cache_size = 2GB)运行PostgreSQL 9.2.1(使用Postgis).这是我的本地OSX,具有16GB RAM,Core i7/2.5 GHz,非SSD磁盘.

添加EXPLAIN ANALYZE输出 -

Limit  (cost=71.64..71.65 rows=1 width=280) …
Run Code Online (Sandbox Code Playgroud)

postgresql postgis

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