小编Joh*_*vda的帖子

SocketError(getaddrinfo:名称或服务未知) - Sunspot/Solr Rails开发

使用Passenger,Capistrano,nginx和MySQL将我的rails 3.0.10应用程序部署到Ubuntu 10.04服务器时遇到了很多麻烦(而apache2则更麻烦).将rake降级到0.8.7之后它终于正常工作,但现在Sunspot/Solr在我的开发环境中不起作用.sunspot_solr服务器正在运行,我可以获取服务器的URL,并通过浏览器连接到它.该网址与sunspot.yml中的网址相同.我不知道我做了什么导致了这个问题.我之前遇到过与太阳黑子相同的问题(在降级rake之前).然后它突然又开始工作了.我不知道为什么......我试过两个版本的太阳黑子(1.2.1和1.3.0).两者都提前工作,但现在不再工作了.

这是我收到的错误消息:

SocketError (getaddrinfo: Name or service not known):
app/models/resource.rb:128:in `text_search'
app/controllers/search_controller.rb:21:in `index'

Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.0ms)
Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (161.6ms)
Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (168.9ms)
Run Code Online (Sandbox Code Playgroud)

控制器有点乱,所以我只包括相关部分:

@criterion = params[:criterion]
@sort_direction = params[:sort_direction]
if @criterion && @sort_direction
  session["sort_search"] = @criterion + "|" + @sort_direction 
elsif session["sort_search"]
  @criterion = session["sort_search"].split("|")[0]
  @sort_direction = session["sort_search"].split("|")[1]
else
  @criterion = "updated_at"
  @sort_direction = "desc"
 end
@search = Resource.text_search(session[:search_params] || "", current_user, @criterion, @sort_direction) 
@resources = @search.results
Run Code Online (Sandbox Code Playgroud)

我没有更改控制器中的任何内容,因为它正在工作.

我的gemfile:

source 'http://rubygems.org'
gem 'rake'
gem 'rails', '3.0.10' …
Run Code Online (Sandbox Code Playgroud)

sunspot ruby-on-rails-3 sunspot-rails sunspot-solr

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

在Ruby中将float拆分为整数和小数

如果我有一个像3.75的浮点数,我怎么能把它分成整数3和浮点数0.75?

我是否必须将float转换为字符串,然后将字符串拆分为".",然后将这些部分转换为整数和浮动,或者是否有更优雅或"正确"的方法来执行此操作?

ruby

12
推荐指数
2
解决办法
8245
查看次数

如何从祖先生成json树

我用祖先制作一个目标树.我想使用json将该树的内容发送到浏览器.

我的控制器是这样的:

@goals = Goal.arrange
respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml => @goals }
  format.json { render :json =>  @goals}
end
Run Code Online (Sandbox Code Playgroud)

当我打开json文件时,我得到了这个输出:

{"#<Goal:0x7f8664332088>":{"#<Goal:0x7f86643313b8>":{"#<Goal:0x7f8664331048>":{"#<Goal:0x7f8664330c10>":{}},"#<Goal:0x7f8664330e68>":{}},"#<Goal:0x7f86643311b0>":{}},"#<Goal:0x7f8664331f70>":{},"#<Goal:0x7f8664331d18>":{},"#<Goal:0x7f8664331bd8>":{},"#<Goal:0x7f8664331a20>":{},"#<Goal:0x7f86643318e0>":{},"#<Goal:0x7f8664331750>":{},"#<Goal:0x7f8664331548>":{"#<Goal:0x7f8664330aa8>":{}}}
Run Code Online (Sandbox Code Playgroud)

如何在json文件中呈现Goal-objects的内容?

我试过这个:

@goals.map! {|goal| {:id => goal.id.to_s}
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为@goals是一个有序的哈希.

json ruby-on-rails-3 ancestry

9
推荐指数
1
解决办法
3327
查看次数

如何在Rails 3的下拉列表中安排Ancestry树中的条目?

我有一个下拉列表,其中填充了使用祖先的表中的数据.

我想在列表中排列数据,以便将条目与其兄弟姐妹以及父母一起分组.

此代码有效,但不排列条目: <%= builder.select("id", Location.all.collect {|l| [ l.name_nb, l.id ] }, { :include_blank => true }) %>

我试过这一行: <%= builder.select("id", Location.arrange.collect {|l| [ l.name_nb, l.id ] }, { :include_blank => true }) %> 然后我得到消息:未定义的方法`name_nb'为#

我究竟做错了什么?我该如何安排参赛作品?

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

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

是否可以在rails 3.0中使用js.erb partial?

如果可能,我如何从另一个js.erb文件运行它?

试图让事情干涸!

编辑:说明:我在search/index.js.erb中有一个js.erb例程.我想在location/index.js.erb中使用相同的例程.因此,我想知道是否可以部分包含js.erb代码,这样我就不必将例程从第一个index.js.erb文件复制到另一个.

javascript ajax ruby-on-rails ruby-on-rails-3

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

如果字符串中只有一个元素,如何在jQuery中将字符串拆分为数组?

我有这个代码,它接受一个字符串并将其拆分为一个数组:

nodes = $("#" + model_id + "-" + node_class + "--" + "title").data("nodes").split(",")
Run Code Online (Sandbox Code Playgroud)

当字符串中只有一个元素(没有逗号)时,变量"nodes"不会成为数组,而是常规变量.因此,当我尝试迭代"节点"中的每个元素时,如果原始字符串仅包含一个元素,则不会发生任何事情.如果它有几个元素,一切都OK.

$.each(nodes, function (id, node_id) {
  if ($("#" + model_id + "-" + node_class + "-" + node_id + "-" + "chkbx").is(":checked")) {
    counter ++
  }
})
Run Code Online (Sandbox Code Playgroud)

我试图将"nodes"声明为一个数组,但是当我分配splitted字符串时,它们都是一样的.由于我使用"split"来赋值,我认为我不能使用"push"将值附加到数组中.

我想,我试图把方括号放在任何地方,就像这样:

[nodes] = $("#" + model_id + "-" + node_class + "--" + "title").data("nodes").split(",")
Run Code Online (Sandbox Code Playgroud)

......但这没有帮助.

有没有解决方案,除了检查"节点"是否是一个数组,然后编写不同的代码来处理这两个选项?

javascript jquery

0
推荐指数
1
解决办法
2088
查看次数