小编Ric*_*kes的帖子

谷歌地图jQuery - 从鼠标点击获取LatLng

我目前正在使用Google Maps v3 API和他们的jQuery客户端.我试图通过鼠标点击地图来获取经度和经度,将它们连接到一个字符串并将该字符串添加到页面上的输入字段.作为jQuery的新手,我完全迷失了.谁能指出我正确的方向?我在我的网页上初始化Google地图的代码如下:

$(document).ready(function() { 
    var yourStartLatLng = new google.maps.LatLng(53.307697, -6.222317);
    $('#map-canvas').gmap({'center': yourStartLatLng, zoom: 15});
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery google-maps google-maps-api-3

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

将Google Custom Search API与Ruby google-api-client一起使用

作为我目前参与的人物搜索项目的一部分,我需要编写一个ruby脚本,可以将搜索查询发送到Google Custom Search API并存储搜索结果以进行处理.我找到了Ruby google-api-client gem(http://code.google.com/p/google-api-ruby-client/)并安装了它,但是,尽管已经彻底阅读了文档,但我感到很茫然.至于如何执行自定义搜索API调用.这是我第一次尝试使用Google API而且我发现这个过程有点压倒性,有没有人可以提供一些示例代码供我学习?谢谢

ruby google-api-client

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

Ruby - 使用Comparable mixin比较两个不同属性上的对象

是否有一种简单的方法(即使用太空船操作员)根据两个不同的属性在Ruby中定义比较?即如果我有一个包含两个属性attr1和attr2的类,是否有一种Rubyesque方法来比较attr1上这个类的两个实例,如果它们相等,那么在attr2上比较它们?

ruby comparable

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

Rails 3:Model.all => NoMethodError:未定义的方法'accept'代表nil:NilClass

我正在尝试围绕预先存在的MySQL数据库构建一个Rails应用程序.我创建了rails项目,正确设置了database.yml文件并创建了一个模型User,以对应db中的users表.当我运行rails控制台来测试它时,这就是我得到的:

 > User.all
(32.4ms)  SHOW TABLES
(34.9ms)  describe `users`
NoMethodError: undefined method `accept' for nil:NilClass
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in `to_sql'
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:16:in `select_all'
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/query_cache.rb:63:in `select_all'
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/querying.rb:38:in `block in find_by_sql'
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/explain.rb:40:in `logging_query_plan'
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/querying.rb:37:in `find_by_sql'
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/relation.rb:170:in `exec_queries'
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/relation.rb:159:in `block in to_a'
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/explain.rb:33:in `logging_query_plan'
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/relation.rb:158:in `to_a'
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/relation/finder_methods.rb:159:in `all'
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/querying.rb:5:in `all'
from (irb):1
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.1/lib/rails/commands/console.rb:47:in `start'
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.1/lib/rails/commands/console.rb:8:in `start'
from /home/richard/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.1/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'1.9.3-p0 :002 > ^C
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?据我所知,我遵循rails约定:我创建了一个User模型,与db中已经存在的名为users的表对应,其主键是一个名为id的整数字段.

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

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

ApplicationHelper 方法在 Devise Controller 中不可用

我有一个旧版 Rails 3.2 应用程序,其中使用 Devise 进行身份验证。以前,Devise 一直使用其 SessionController 的默认应用程序布局,并且所有应用程序的控制器均显式声明layout "public"。我决定将公共布局更改为application.haml,并将之前的应用程序布局更改为devise.haml. 为了确保Devise::SessionsController使用正确的布局,我将其添加到我的application.rb文件中:

config.to_prepare do
  Devise::SessionsController.layout "devise"
end
Run Code Online (Sandbox Code Playgroud)

但是,当我添加此内容时,我的集成测试开始失败,因为它们无法访问 ApplicationHelper 中定义的视图助手。为什么以这种方式更改控制器的布局会阻止使用 ApplicationHelper 方法?我该如何解决这个问题?

ruby-on-rails devise

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

Capybara has_field找不到has_selector找到的字段

我目前正在为Rails应用程序中的消息传递系统编写Cucumber功能.这是我的一个步骤.

Then(/^they should see the message displayed in their language$/) do
  id = "message_to_#{@family.id}"
  expect(page).to have_selector("textarea##{id}")
  save_and_open_page
  expect(page).to have_field(id, type: :textarea)
end
Run Code Online (Sandbox Code Playgroud)

第一个断言通过,但第二个断言失败.当我检查save_and_open_page创建的标记时,会出现以下元素:

<textarea cols="22" disabled="disabled" id="message_to_13" name="body" placeholder="Hallo, Ich bin sehr interessiert an deinem Profil. Würdest du gerne mit mir in Kontakt treten?" rows="7"></textarea>
Run Code Online (Sandbox Code Playgroud)

显示第二个测试的错误消息是:

expected to find field "message_to_13" but there were no matches. Also found "", which matched the selector but not all filters. (Capybara::ExpectationNotMet)
Run Code Online (Sandbox Code Playgroud)

我在这里撕扯我的头发,以了解为什么Capybara可以使用have_selector找到明显存在的元素,但不能使用have_field?

ruby-on-rails cucumber capybara

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

Rails 4 - 呈现具有与变量不同的部分名称的集合

我有以下的部分posts/post_preview在我的项目:

.post
  %h2= link_to(post.title, post)
  .post-body= simple_format(post.body)
  %ul
    - post.tags.each do |tag|
      %li= tag
Run Code Online (Sandbox Code Playgroud)

我想为集合名称渲染这个部分@posts,如下所示:

render partial: 'post_preview', collection: @posts
Run Code Online (Sandbox Code Playgroud)

然而,render在默认情况下越过集合作为部分命名的局部变量的每个成员.有什么方法可以改变这个,所以每个成员都@posts被传递给名为post?的变量中的部分?

ruby-on-rails ruby-on-rails-4

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

否定Ruby正则表达式中的字符串

我正在寻找一种使用Ruby从URL列表中提取LinkedIn个人资料页面的方法.目前我正在循环URL并将它们与此正则表达式进行匹配:

/^http:\/\/.+\.linkedin.com\/(pub|in)/
Run Code Online (Sandbox Code Playgroud)

但是,LinkedIn个人资料目录页面的URL如下:

http://www.linkedin.com/pub/dir
Run Code Online (Sandbox Code Playgroud)

,所以我希望避免任何包含pub/dir路径的链接.我知道可以否定Ruby正则表达式中的字符类,例如匹配任何非abc字符的[^ abc].有没有办法对字符串做同样的事情?即匹配"dir"之外的任何字符序列?

ruby regex

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

使用Ruby发出HTTP请求时的EOFError

我目前正在编写一个脚本,它迭代一个URL列表并对它们进行一些处理.我列表中的一个URL给了我一个问题.代码如下:

url = "https://secure.www.alumniconnections.com/olc/pub/CDB/events/attendance.cgi?   tmpl=attendance&event=2309515&sort=4"
uri = URI.parse(url)
response = Net::HTTP.get_response(uri)
Run Code Online (Sandbox Code Playgroud)

最后一行引发以下错误:

EOFError: end of file reached
    from /usr/lib/ruby/1.8/net/protocol.rb:135:in `sysread'
    from /usr/lib/ruby/1.8/net/protocol.rb:135:in `rbuf_fill'
    from /usr/lib/ruby/1.8/timeout.rb:67:in `timeout'
    from /usr/lib/ruby/1.8/timeout.rb:101:in `timeout'
    from /usr/lib/ruby/1.8/net/protocol.rb:134:in `rbuf_fill'
    from /usr/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
    from /usr/lib/ruby/1.8/net/protocol.rb:126:in `readline'
    from /usr/lib/ruby/1.8/net/http.rb:2028:in `read_status_line'
    from /usr/lib/ruby/1.8/net/http.rb:2017:in `read_new'
    from /usr/lib/ruby/1.8/net/http.rb:1051:in `request'
    from /usr/lib/ruby/1.8/net/http.rb:948:in `request_get'
    from /usr/lib/ruby/1.8/net/http.rb:380:in `get_response'
    from /usr/lib/ruby/1.8/net/http.rb:543:in `start'
    from /usr/lib/ruby/1.8/net/http.rb:379:in `get_response'
    from (irb):5
    from /usr/lib/ruby/1.8/uri/ftp.rb:190
Run Code Online (Sandbox Code Playgroud)

我的列表中没有其他网址似乎给了我任何悲伤.谁能解释为什么我收到这个错误?

ruby http

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

1.9中的哈希构造函数参数.*

我似乎在使用Ruby参数到Ruby 1.9.2中的构造函数时遇到了问题.我注意到我正在尝试做的工作在1.8.7.这是我的示例代码:

def initialize(*params)
    @attr1 = params[:attr1] or nil
    @attr2 = params[:attr2] or nil
end
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试实例化此示例类的对象时,我在设置第一个实例变量的行上收到错误消息: in '[]': can't convert Symbol into Integer (TypeError)

为什么这在1.9.2中不起作用?我该如何解决它?

ruby

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