我跟随Ryan Bates的Railscast跟Postgres进行全文搜索,然而,他正在使用postgres 9.1而我正在使用9.2.他构建以下查询以执行搜索.如果我的查询是单个单词,例如"超人",但如果它是两个单词,例如dc comics,或者super man,我收到此错误,这对于postgres来说是新手,我无法弄清楚如何修复它对我有用.你能帮忙吗?
PG::Error: ERROR: syntax error in tsquery: "super man"
LINE 1: ...articles" WHERE (to_tsvector('english', name) @@ 'super man...
^
: SELECT "articles".* FROM "articles" WHERE (to_tsvector('english', name) @@ 'super man' or to_tsvector('english', content) @@ 'super man') ORDER BY ts_rank(to_tsvector(name), plainto_tsquery('super man')) +
ts_rank(to_tsvector(content), plainto_tsquery('super man'))
desc LIMIT 3 OFFSET 0
Run Code Online (Sandbox Code Playgroud)
来自Article.rb的查询
def self.text_search(query)
if query.present?
rank = <<-RANK
ts_rank(to_tsvector(name), plainto_tsquery(#{sanitize(query)})) +
ts_rank(to_tsvector(content), plainto_tsquery(#{sanitize(query)}))
RANK
where("to_tsvector('english', name) @@ :q or to_tsvector('english', content) @@ …Run Code Online (Sandbox Code Playgroud) 我下载了ruby Twitter gem源代码,我正在尝试使用yard来生成文档,我通过它安装gem install yard.在rakefile中,我发现了以下内容,我假设它用于生成Twitter gem的文档:
require 'yard'
YARD::Rake::YardocTask.new
Run Code Online (Sandbox Code Playgroud)
我试着require yard用irb然后跑,YARD::Rake::YardocTask.new但什么都没发生.
你能帮助我走上正轨吗?
我对Ruby的理解是'new'关键字总是与类名组合以创建一个新的类实例.在下面的代码,在发现https://gist.github.com/e9c0da1a6e92dd12cbc7,并将其提交作为解决一个Ruby编程挑战赛新手,笔者使用了"新"的关键字三次没有一个类实例化.
在一种情况下,new(0,0)被分配给常量CLOSED.在另一种情况下,new(open,close)是函数的返回值.为什么这样?当它以这种方式使用时,"新"的做法是什么?是什么创造的?
class OpenHours
attr_reader :open, :close
def initialize(open, close)
@open, @close = open, close
end
def duration
@duration ||= @open < @close ? @close - @open : 0
end
CLOSED = new(0, 0) #first new
def self.parse(open, close)
open = Time.parse(open)
close = Time.parse(close)
open = TimeUtils::seconds_from_midnight(open)
close = TimeUtils::seconds_from_midnight(close)
new(open, close) #second new
end
def offset(seconds)
self.class.new([@open, seconds].max, @close) #third new
end
end
Run Code Online (Sandbox Code Playgroud) 我今天第一次在我的本地机器上启动Redis,然后在关闭我的Rails应用程序后关闭所有终端窗口.一小时后,我再次启动了Rails应用程序并执行以下操作以启动redis服务器
redis-server /usr/local/etc/redis.conf
Run Code Online (Sandbox Code Playgroud)
但是,它告诉我
# Opening port 6379: bind: Address already in use
Run Code Online (Sandbox Code Playgroud)
因此,我假设它仍在运行其早期实例,即使我关闭了Mac上的终端窗口.
看看这个页面http://redis.io/commands/shutdown,我试着跑
SHUTDOWN
Run Code Online (Sandbox Code Playgroud)
在终端窗口但我收到了这个回复
SHUTDOWN: NOT super-user
Run Code Online (Sandbox Code Playgroud)
我因此尝试过(即使我没有使用sudo启动它)
sudo SHUTDOWN
Run Code Online (Sandbox Code Playgroud)
在它询问我的密码后,输出了这个
usage: shutdown [-] [-h [-u] [-n] | -r [-n] | -s | -k] time [warning-message ...]
Run Code Online (Sandbox Code Playgroud)
但当我随机跑shutdown -s它时说
SHUTDOWN: NOT super-user
Run Code Online (Sandbox Code Playgroud)
关闭应用程序时关闭Redis的正确方法是什么?
将带有capistrano的应用程序部署到VPS时,我的部署脚本正在运行带有安静标志的bundle install.有没有办法让它在没有安静标志的情况下运行.deploy.rb文件中没有任何内容(从Ryan Bates借来)似乎将其设置为安静.
command finished in 161ms
* 2013-06-27 12:57:07 executing `bundle:install'
* executing "cd /home/brain/apps/dogapp/releases/2013044444 && bundle install --gemfile /home/brain/apps/dogapp/releases/2013044444/Gemfile --path /home/brain/apps/dogapp/shared/bundle --deployment --quiet --without development test"
Run Code Online (Sandbox Code Playgroud)
Deploy.rb
require "bundler/capistrano"
server "198.69.696969.69", :web, :app, :db, primary: true
set :application, "dogapp"
set :user, "brain"
set :deploy_to, "/home/#{user}/apps/#{application}"
set :deploy_via, :remote_cache
set :use_sudo, false
set :scm, "git"
set :repository, "git@github.com:braindead/dogapp.git"
set :branch, "master"
default_run_options[:pty] = true
ssh_options[:forward_agent] = true
after "deploy", "deploy:cleanup" # keep only the last 5 releases
namespace :deploy …Run Code Online (Sandbox Code Playgroud) 我编写了一个我希望在mongo shell中的集合上运行的聚合.如果我将它直接粘贴到shell中,我必须逐行进行,这是繁琐而缓慢的,特别是当它不起作用时我必须完成它.因此,我将它放在.js文档中并像这样加载它,load("myaggregation.js")但只有true在代码有效时才会返回.加载后如何运行聚合?我找不到任何关于此的文档.我是否必须使用nodejs驱动程序?
对不起,这可能是一个noob问题.这(economic.rb)是一个解析世界经济数据的脚本.我不确定如何将xml文件传递给它.通常情况下,我会这样做
ruby economic.rb
Run Code Online (Sandbox Code Playgroud)
但是,File.open将ARGV [0]作为参数.如何在运行脚本时将xml文件(data.xml)传递给它.
economic.rb
require 'rubygems'
require 'nokogiri'
File.open(ARGV[0]) do |f|
xml_doc = Nokogiri::XML::Document.parse(f)
countries = xml_doc.css('country')
most_populous = countries.max_by {|node| node['population'].to_i}
puts "The most populous country in 1996 was #{most_populous['name']} with a population of #{most_populous['population']}"
puts
puts "The five countries with the highest inflation rate in 1996 were:"
countries.sort_by {|country| -(country['inflation'] || 0).to_f} [0..4].each do |country|
puts " #{country['name']} - #{country['inflation']}%"
end
continent_info = countries.group_by {|country| country['continent']}
puts
puts "The continents and their countries in …Run Code Online (Sandbox Code Playgroud) 我正在查看的Ember应用程序的应用程序模板使用条件检查来确定要显示的链接
{{#if isAuthenticated}}
link
{{else}}
link...
{{/if}}
Run Code Online (Sandbox Code Playgroud)
isAuthenticated属性是根据用户是否已注册/登录有条件设置的
App.AuthController = Ember.ObjectController.extend({
currentUser: null,
isAuthenticated: Em.computed.notEmpty("currentUser.email"),
login: function(route) {
var me;
me = this;
return $.ajax({
url: "/users/sign_in.json",
type: "POST",
data: {
"user[email]": route.currentModel.email,
"user[password]": route.currentModel.password
},
success: function(data) {
me.set('currentUser', data.user);
return route.transitionTo('user', data.user);
Run Code Online (Sandbox Code Playgroud)
该应用程序能够毫无问题地处理注册和登录,但是,应用程序模板始终显示用户未经过身份验证的链接.是否有一些理由为什么isAuthenticated在登录时不会根据您在此处看到的代码进行更新?
我有 InfluxDB 运行localhost:8086(它是默认的)和一个运行在不同端口上的 go 程序(因为它必须,也不能在 8086 上运行)。我试图在我的 go 程序中使用 JavaScript 将数据发布到 InfluxDB,我得到了No Access-Control-Allow-Origin响应。这个 github 问题(由使用反向代理的人发布)说这个问题可以通过配置代理机制来解决,但我没有使用代理机制。有没有办法在没有得到响应的情况下将数据发布到 InfluxDB?通过 post 请求接收数据似乎是 InfluxDB 的核心功能,但它无法正常工作。
我插入了相当多的console.log(); javascript程序中的语句(由其他人编写)并在Chrome控制台中查看结果.你会从这篇文章的图片中看到,其中三行中有数字(32,8和8).这些数字不可点击.控制台只显示了一些console.log语句,所以我猜这些数字在某种程度上是指未显示的其他语句.这是我第一次看到这种情况发生,虽然我之前做过同样的事情(插入了很多console.log语句).
1)它没有显示所有控制台日志语句意味着重要的事实吗?2)有什么方法可以理解这些数字的含义,以及它们为何被展示出来?

ruby ×3
capistrano ×1
ember.js ×1
influxdb ×1
javascript ×1
mongodb ×1
postgresql ×1
rake ×1
redis ×1
yard ×1