我目前正在使用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) 作为我目前参与的人物搜索项目的一部分,我需要编写一个ruby脚本,可以将搜索查询发送到Google Custom Search API并存储搜索结果以进行处理.我找到了Ruby google-api-client gem(http://code.google.com/p/google-api-ruby-client/)并安装了它,但是,尽管已经彻底阅读了文档,但我感到很茫然.至于如何执行自定义搜索API调用.这是我第一次尝试使用Google API而且我发现这个过程有点压倒性,有没有人可以提供一些示例代码供我学习?谢谢
是否有一种简单的方法(即使用太空船操作员)根据两个不同的属性在Ruby中定义比较?即如果我有一个包含两个属性attr1和attr2的类,是否有一种Rubyesque方法来比较attr1上这个类的两个实例,如果它们相等,那么在attr2上比较它们?
我正在尝试围绕预先存在的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的整数字段.
我有一个旧版 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 方法?我该如何解决这个问题?
我目前正在为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?
我有以下的部分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从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"之外的任何字符序列?
我目前正在编写一个脚本,它迭代一个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参数到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 ×5
activerecord ×1
capybara ×1
comparable ×1
cucumber ×1
devise ×1
google-maps ×1
http ×1
javascript ×1
jquery ×1
regex ×1