小编Moh*_*ain的帖子

ruby中的异步http请求

 require 'net/http'

urls = [
  {'link' => 'http://www.google.com/'},
  {'link' => 'http://www.facebook.com/'},
 {'link' => 'http://www.yahoo.com/'}
]

urls.each do |u|
  u['content'] = Net::HTTP.get( URI.parse(u['link']) )
end

print urls
Run Code Online (Sandbox Code Playgroud)

这将作为程序代码.我只想打一个服务器,没有关于订单的问题.我怎么能在红宝石中做到这一点.一种选择是使用线程.

这是使用线程的示例.

require 'net/http'

urls = [
  {'link' => 'http://www.google.com/'},
  {'link' => 'http://www.facebook.com/'},
  {'link' => 'http://www.yahoo.com/'}
]

urls.each do |u|
  Thread.new do
    u['content'] = Net::HTTP.get( URI.parse(u['link']) )
    puts "Successfully requested #{u['link']}"

    if urls.all? {|u| u.has_key?("content") }
      puts "Fetched all urls!"
      exit
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

更好的解决方案.. ??

PS: - 我想点击mixpanel,这就是为什么我只想进行http调用而不等待响应.

ruby ruby-on-rails http ruby-on-rails-3 mixpanel

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

获取下拉列表的最后一个选项的价值?

我有下拉菜单..它是动态的..如何获得该下拉列表中最后一项的值(使用jquery也是可以接受的)

html javascript

29
推荐指数
2
解决办法
4万
查看次数

rvmsudo vs sudo?

我刚搬到RVM.

sudo bundle install给我和错误: -

 sudo bundle install
/usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:900:in `report_activate_error': Could not find RubyGem bundler (>= 0) (Gem::LoadError)
from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:248:in `activate'
from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1276:in `gem'
from /usr/local/rvm/gems/ruby-1.9.2-p180/bin/bundle:18:in `<main>'
Run Code Online (Sandbox Code Playgroud)

rvmsudo bundle install 
Run Code Online (Sandbox Code Playgroud)

奇迹般有效.有什么不同.什么在屏幕后面发生.任何人都可以解释..

sudo ruby-on-rails rvm

28
推荐指数
1
解决办法
2万
查看次数

将度数转换为红宝石中的弧度

我有经度和经度,我想将它们转换为弧度.我怎样才能做到这一点?

PS我正在使用sphinx搜索引擎,它需要以弧度为单位的值

ruby

24
推荐指数
2
解决办法
1万
查看次数

如何在simple_form中使用占位符而不是标签?

我想在我的应用程序中使用占位符而不是标签.我使用的是simple_form和Rails(3.2.14).如何在simple_form配置文件中指定使用占位符而不是标签.

在Initializers中有一个文件simple_form.rb即

# Use this setup block to configure all options available in SimpleForm.
SimpleForm.setup do |config|
  # Wrappers are used by the form builder to generate a
  # complete input. You can remove any component from the
  # wrapper, change the order or even add your own to the
  # stack. The options given below are used to wrap the
  # whole input.
  config.wrappers :default, :class => :input, :hint_class => :field_with_hint, :error_class => :field_with_errors do |b|
    ## Extensions enabled …
Run Code Online (Sandbox Code Playgroud)

label ruby-on-rails placeholder simple-form

21
推荐指数
2
解决办法
1万
查看次数

为什么单个主键比复合键更好?

为什么拒绝复合键有利于使用名为id的单个主键的所有表?因此通常所有ORM都遵循此原则.

编辑

我刚刚开始在轨道上学习ruby,在实用的敏捷开发书中有一条线:--- Rails确实不能很好地工作,除非每个表都有一个数字主键.对列的名称不太挑剔.我在学习Doctrine时读到的那条线.

EDIT2 请检查此链接.我越来越对这件事感到困惑:--- 复合主键与唯一对象ID字段

从以上链接: -

*主键应该是恒定的,毫无意义的; 非代理键通常会失败一个或两个要求,最终

如果密钥不是常量,那么如果密钥没有意义,那么将来的更新问题会变得非常复杂,那么它更有可能发生变化,即不是常数; 往上看

举一个简单的常见例子:库存项目表.将项目编号(SKU编号,条形码,零件代码或其他任何东西)作为主键可能很诱人,但一年后所有项目编号都会发生变化,而且您将面临一个非常混乱的更新 - 整个 - 数据库问题......

编辑:还有一个比哲学更实用的问题.在许多情况下,你会以某种方式找到一个特定的行,然后再更新它或再次找到它(或两者).使用复合键,有更多数据可以跟踪WHERE子句中的更多约束以及重新查找或更新(或删除).在此期间,其中一个关键部分也可能已发生变化!使用代理键,始终只保留一个值(代理ID),根据定义,它不能更改,这可以显着简化情况.*

orm database-design primary-key

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

在jQuery UI日历中禁用所有星期日

我想在jQuery UI日历中禁用星期日.

从我开始了解的文档: -

$('#datepicker').datepicker({ minDate: 4,beforeShowDay: $.datepicker.noWeekends }); 
Run Code Online (Sandbox Code Playgroud)

这将禁用周六和周日.但是我想在星期天才能解决这个问题.是否有任何默认选项.

解决它的方法很糟糕

beforeShowDay作为每天的参数使用真或假.因此,编写一个基于每一天返回true或false的函数.

jquery jquery-ui datepicker jquery-plugins

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

OmniAuth Strategies Facebook NoAuthorizationCodeError(必须传递`code`参数或签名请求(通过`signed_request`参数):

我收到一个错误:

 OmniAuth::Strategies::Facebook::NoAuthorizationCodeError (must pass either a 
`code` parameter or a signed request (via `signed_request` parameter or a 
`fbsr_XXX` cookie)):
Run Code Online (Sandbox Code Playgroud)

它不是一直都会来的.它会偶尔出现,由airbrake通知.

谷歌搜索有很多链接,但无法找到合适的解决方案..任何人?omizersuth.rb在initializers目录下:

OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'], {:client_options => {:ssl => {:ca_path => "/etc/ssl/certs"}}, :scope => 'user_about_me,email,publish_actions,user_location,publish_stream,offline_access,user_interests,user_likes,user_hometown', :display => 'popup'}      

  OmniAuth.config.on_failure = Proc.new do |env|
    #this will invoke the omniauth_failure action in SessionsController.
    "SessionsController".constantize.action(:omniauth_failure).call(env)
  end         
end
Run Code Online (Sandbox Code Playgroud)

PS:我正在使用facebook javascript sdk和facebook-omniauth

facebook ruby-on-rails omniauth facebook-javascript-sdk

18
推荐指数
4
解决办法
1万
查看次数

我可以在没有任何操作系统平台的情况下执

我用谷歌搜索了它,并在某处读到....

是的你可以.这种情况发生在嵌入式系统中

我想不,这是不可能的.任何平台都必须具有操作系统.否则,您的程序本身必须是一个操作系统.无论是软线还是硬线.没有操作系统,您的组件将无法运行.

我是对的还是任何人都能解释我的答案?(我对嵌入式系统没有任何想法...)

c operating-system

16
推荐指数
3
解决办法
8231
查看次数

C++中"this"指针的目的是什么?

this关键字的目的是什么?类中的方法是否可以访问同一个类中的其他对等成员?this在类中调用一个调用peer方法的需要是什么?

c++ pointers this

16
推荐指数
3
解决办法
3万
查看次数