当我运行涉及启用了gmaps4rails的模型的rake任务时,我得到了这个错误,如果我对模型进行评论,那么它就不是acts_as_gmappable,而是正确完成.
enter code here
troy$ rake populate:scans --trace
** Invoke populate:scans (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute populate:scans
http://goo.gl/fb/977ze
Sat, 16 Jul 2011 19:43:59 GMT
47.676506
-122.121872
91df0f32209c5212XXXXXXXXXXXXXXX
rake aborted!
undefined method `gmaps' for #<Scan:0x000001051fb9a8>
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.9/lib/active_model/attribute_methods.rb:392:in `method_missing'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/attribute_methods.rb:46:in `method_missing'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/gmaps4rails-0.9.1/lib/gmaps4rails/acts_as_gmappable.rb:12:in `process_geocoding'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.9/lib/active_support/callbacks.rb:415:in `_run_validate_callbacks'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.9/lib/active_model/validations.rb:212:in `run_validations!'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.9/lib/active_model/validations/callbacks.rb:67:in `block in run_validations!'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.9/lib/active_support/callbacks.rb:414:in `_run_validation_callbacks'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.9/lib/active_model/validations/callbacks.rb:67:in `run_validations!'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.9/lib/active_model/validations.rb:179:in `valid?'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/validations.rb:55:in `valid?'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/validations.rb:75:in `perform_validations'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/validations.rb:43:in `save'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/attribute_methods/dirty.rb:21:in `save'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/transactions.rb:240:in `block (2 levels) in save'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/transactions.rb:292:in `block in with_transaction_returning_status'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/connection_adapters/abstract/database_statements.rb:139:in `transaction'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/transactions.rb:207:in …Run Code Online (Sandbox Code Playgroud) 我正在使用apneadiving/Google-Maps-for-Rails添加谷歌地图支持(感谢真棒宝石)
我发现了一个轻微的故障,这很可能是我的错.
当有多个标记时,auto_zoom很有效.但是,当只有一个标记时,它会放大到最大级别,这不是很漂亮.
"zoom"仅在auto_zoom为false时有效,因此这不是我想要的.
因此,您可以使用"maxZoom",但现在用户无法在该点之外手动放大,这不是我想要的.
有没有解决的办法?我的解释有意义吗?这是Google Maps API的限制吗?
谢谢...
我用这种方式组织了一些js文件(参见源代码):
gmaps4rails.base.js :包含所有逻辑
gmaps4rails.googlemaps.js :包含函数
gmaps4rails.bing.js :包含与前一个文件同名的函数
所以基本上,base要求createMarkers()其在两个googlemaps和bing.
从现在开始,我加载中只有一个是gmaps4rails.googlemaps.js和gmaps4rails.googlemaps.js,取决于地图API,我需要,所以它工作正常.
现在我希望能够加载所有文件(并将它们分开)但当然只包含所需地图API的代码.
基本上我想的是:
if desiredApi == "googlemaps"
include GoogleMapsNameSpace content in BaseNameSpace
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我有一个基本的角度资源(角度1.0.7):
app.factory "User", [ "$resource", ($resource)->
$resource "/users/:id", { id: '@id' }, {
index: { method: 'GET', isArray: false }
}
]
Run Code Online (Sandbox Code Playgroud)
我可以传递如下参数:
User.index({ foo: 1, bar: 2 })
Run Code Online (Sandbox Code Playgroud)
但我需要传递嵌套参数:
User.index({ foo: { bar: 1 } })
Run Code Online (Sandbox Code Playgroud)
这失败了因为它发送:
/users?foo=%5Bobject+Object%5D
Run Code Online (Sandbox Code Playgroud)
我试过了:
User.index({ foo: JSON.stringify({ bar: 1 }) })
Run Code Online (Sandbox Code Playgroud)
但显然在服务器端(仅仅是字符串)无法识别参数,我想避免在那里解析的麻烦.
你对这个问题有一个优雅的解决方案吗?
使用jQuery我已经完成了:
$.get("/users", { foo: { bar: 1 } } )
Run Code Online (Sandbox Code Playgroud)
生产:
/users?foo%5Bbar%5D=1
Run Code Online (Sandbox Code Playgroud)
完美地由服务器解释.
我正在构建一个我作为宝石捆绑的引擎(gmaps4rails).我在我的rails应用程序的/ public中复制了我的引擎的/ public.
一切都在开发中工作正常,但无法在生产中工作:看起来没有找到静态资产(我的引擎和我的主应用程序).
日志告诉以下内容(只是一个摘要):
Started GET "/javascripts/application.js?1286294679" for 127.0.0.1 at Wed Nov 24 00:22:20 +0100 2010
ActionController::RoutingError (No route matches "/javascripts/application.js"):
Rendered /Users/me/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/gems/1.8/gems/actionpack-3.0.3/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.1ms)
Started GET "/stylesheets/gmaps4rails.css?1290554221" for 127.0.0.1 at Wed Nov 24 00:22:20 +0100 2010
ActionController::RoutingError (No route matches "/stylesheets/gmaps4rails.css"):
Run Code Online (Sandbox Code Playgroud)
我做了一些事情:
在我的应用程序的production.rb中,我设置:
config.serve_static_assets = true
这解决了问题,但不够优雅,我想保持它为假并在引擎中添加配置:)
我按照这里的建议没有成功.
我试图在我的Rails应用程序上使用Rsec测试一些非常简单的东西.
这是spec/controllers/movies_controller_spec.rb中的测试代码段
describe MoviesController do
describe 'update' do
it 'should call the model method to look up the movie to update' do
Movie.should_receive(:find).with("3")
put :update, {:id => "3"}
end
end
Run Code Online (Sandbox Code Playgroud)
这是controllers/movies_controller.rb中的控制器方法:
def update
Movie.find(params[:id])
end
Run Code Online (Sandbox Code Playgroud)
我遇到了这个问题:
1) MoviesController update should call the model method to look up the movie to update Failure/Error: post :update, {:id => "3"} ActionView::MissingTemplate: Missing template movies/update, application/update with {:handlers=>[:erb, :builder, :coffee, :haml], :formats=>[:html], :locale=>[:en, :en]}. Searched in: * "#<RSpec::Rails::ViewRendering::EmptyTemplatePathSetDecorator:0xa65b300>" # ./spec/controllers/movies_controller_spec.rb:8:in `block (3 levels) in …Run Code Online (Sandbox Code Playgroud) 我试图在我的页面中包含一个json对象,它将充当javascript对象.
我在控制器中很简单
def index
@tasks = User.select("task_id,desc")
end
在我看来,我以为我能够投入
var tasks = <%= @tasks.as_json %>
但那个输出
[#<Task task_id: 1, shrtDesc: "task 1">, #<Task task_id: 2, shrtDesc: "task 2">]
我所期待的是
{"task_id":1, "shrtDesc": "task 1"}, {"task_id":2,"shrtDesc":"task 2"}
如何仅使用gmaps4rails加载地图边界内的标记?当然,在平移和/或缩放后加载新的.
与此直接相关,我如何获得地图的当前边界和缩放级别?
在过去的几个月里,我感觉自己在Ruby on Rails(RoR)开发方面的知识达到了极限.我为大/小客户和朋友/爱好项目开发了大型和小型应用程序.我知道如何开发这些应用程序,它开始感觉有点单调乏味.我想把我的编程技巧提升到一个新的水平,我对Javascript有一点经验,我在一些好的Javascript书籍中自学了,并且学到了很多东西!但现在我又回到了过去几个月的RoR水平.我希望从Javascript书籍中获得知识提升.
我真的想为很多开源项目做贡献,但是当我看到源代码时,我感觉我不知道足够的代码,并且我将成为项目主要开发人员的恼人负担( S).这只是我的一些不确定因素,但我不想厌倦/激怒其他开发者......
我感到困惑,我不知道如何做到达到我自己的水平.我尝试阅读源代码,但我经常遇到的问题主要是"你为什么这样做,它有什么好处?它是如何工作的?".我知道我想了解我对ruby和rails的知识,但我不知道该怎么做.在我编程RoR的时候,我很难确定自己的"技能水平",因为我知道自己可以提高自己的技能.所以我知道这一点,我从一些基本的Ruby书开始:基础扎实的Rubyist和Beginning Ruby.这些都是很棒的书,我学会了一些漂亮的小技巧,但就是这样.
你们推荐任何资源和书籍吗?我没有比Ruby/Javascript更多的其他语言经验.但我真的想学习,我没有扎实的编程背景,因为它主要是从爱好发展到工作.我想为开源项目和工作做贡献,主要向其他优秀开发人员学习.我被困住了,我不知道从哪里开始.
提前致谢.
ruby computer-science programming-languages ruby-on-rails ruby-on-rails-3
目前我正在尝试学习ruby on rails和测试框架rspek任何人都可以回答我在这个rspec测试中做什么
describe "GET index" do
it "assigns all mymodel as @mymodel" do
mymodel = Factory(:mymodel)
get :index
assigns(:mymodels).should eq([mymodel])
end
end
Run Code Online (Sandbox Code Playgroud) ruby ×6
gmaps4rails ×3
google-maps ×3
rspec ×2
angularjs ×1
assets ×1
javascript ×1
json ×1
static ×1
tdd ×1
testing ×1