小编mu *_*ort的帖子

读取描述符的非阻塞调用

我有一个fd描述符,我可以通过调用来读取它read(fd, buffer,...).现在,我想在实际拨打电话之前检查是否有任何内容需要阅读,因为呼叫是阻塞的.我该怎么做呢?

c unix

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

rails 3.2迁移无法在change方法中为create_table添加索引

这是我在rails 3.2.2中的迁移:

class CreateStatistics < ActiveRecord::Migration
  def change
    create_table :statistics do |t|
      t.string :name
      t.integer :item_id
      t.integer :value
      t.text :desc

      t.timestamps
      t.index [:name, :item_id]
    end

  end
end
Run Code Online (Sandbox Code Playgroud)

这是迁移错误:

==  CreateStatistics: migrating ===============================================
-- create_table(:statistics)
ActiveRecord::ConnectionAdapters::TableDefinition
rake aborted!
An error has occurred, all later migrations canceled:

undefined method `index' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0xbd16888>

Tasks: TOP => db:migrate
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)

什么是创建索引的正确方法?

ruby-on-rails rails-migrations

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

返回没有删除元素的数组?使用splice()而不更改数组?

我想做的事情如下:

var myArray = ["one","two","three"];
document.write(myArray.splice(1,1));
document.write(myArray);
Run Code Online (Sandbox Code Playgroud)

因此它首先显示"一,三",然后是"一,二,三".我知道splice()返回被删除的元素并更改数组,但是是否有函数返回一个删除了元素的新数组?我试过了:

window.mysplice = function(arr,index,howmany){
    arr.splice(index,howmany);
    return arr;   
};
Run Code Online (Sandbox Code Playgroud)

如果我尝试:

var myArray = ["one","two","three"];
document.write(mySplice(myArray,1,1));
document.write(myArray);
Run Code Online (Sandbox Code Playgroud)

它仍然会改变myArray ......

请帮忙.

javascript arrays

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

如何在rails上获取ruby中的控制器和操作列表?

在rails中,我可以通过controller_name获取当前控制器的名称,并通过调用action_name获取当前操作.我正在寻找类似的运行时反射来获取以下内容:

  1. 应用程序中所有控制器的列表.
  2. 给定控制器中所有操作的列表.

例如,我是一个具有"添加"和"编辑"操作的产品控制器.我是否可以通过编程方式提取这些操作的名称以向用户显示支持哪些操作?

我已经看过一个需要使用的方法,ActionController::Routing::Routes.named_routes.routes.each 但我无法让它工作.ActionDispatch::Routing::Routes当我使用它时,我得到了未初始化的常量错误.

如果有任何好的教程或文档可以帮助我理解rails反射功能.我搜索了它,但我主要是积极的记录反射相关的博客.我正在寻找能让我在运行时获取有关控制器和操作/方法的信息的东西.
谢谢,

Tabrez

reflection methods controller ruby-on-rails ruby-on-rails-3

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

Ruby是否提供了使用指定编码执行File.read()的方法?

在ruby 1.9.x中,我们可以指定编码File.open('filename','r:iso-8859-1').如果我直接将许多短文件读入字符串,我通常更喜欢使用单行File.read().有没有办法可以直接指定编码,或者我是否必须采用以下方法之一?

str = File.read('filename')
str.force_encoding('iso-8859-1')
Run Code Online (Sandbox Code Playgroud)

要么

f = File.open('filename', 'r:iso-8859-1')
s = ''
while (line = f.gets)
    s += line
end
f.close
Run Code Online (Sandbox Code Playgroud)

ruby encoding file

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

Lodash:如何向集合中的所有值添加新字段

例:

var arr = [{name: 'a', age: 23}, {name: 'b', age: 24}]  
var newArr = _.enhance(arr, { married : false });

console.log(newArr); // [{name: 'a', age: 23, married : false}, {name: 'b', age: 24, married : false}]
Run Code Online (Sandbox Code Playgroud)

我正在寻找能做到这一点的事情.注意,lodash中不存在增强功能.用lodash可以做到这一点吗?
如果不是 - 可能添加?

谢谢,

javascript underscore.js lodash

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

检索具有空数组的记录时出现问题

我有一个大约100个用户的表,我也有一个用户ID数组.我想要做的是显示所有不属于此用户ID数组的用户.当我做这样的事情

 User.where('id NOT IN (?)', [9, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)

它成功返回用户id不属于该数组的记录.但是,如果该数组是空的,那么

 User.where('id NOT IN (?)', [])
Run Code Online (Sandbox Code Playgroud)

它不会返回任何用户,SQL查询看起来像这样

 SELECT "users".* FROM "users" WHERE (id NOT IN (NULL))
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会发生这种情况或者这可能是一个错误?我正在使用Rails 3.2.5和PostgreSQL.

postgresql activerecord ruby-on-rails arel ruby-on-rails-3

30
推荐指数
3
解决办法
7752
查看次数

冒号":"和胖箭"=>"之间有什么区别

Ruby中冒号:和胖箭的区别是什么=>?还是什么时候用?

:foo => true
foo: true
Run Code Online (Sandbox Code Playgroud)

ruby syntax hash hashrocket

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

检查骨干js中是否有某个模型或集合

当您覆盖骨干同步时,模型/集合.save()/ fetch()都使用相同的骨干同步方法,那么检查Backbone.sync接收的模型或模型集合的最佳方法是什么?

举个例子:

Backbone.sync = function(method, model, options){
  //Model here can be both a collection or a single model so
 if(model.isModel()) // there is no isModel or isCollection method
}
Run Code Online (Sandbox Code Playgroud)

我想我正在寻找一个"安全"的最佳实践,我当然可以检查某些属性或方法,只有模型或集合有,但似乎是hackish,不应该有更明显的方法吗?而且我可能找不到它.

谢谢!

javascript backbone.js

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

如何在initialize()中使用define_method

试图在define_method里面使用initialize但得到undefined_method define_method.我究竟做错了什么?

class C
  def initialize(n)    
    define_method ("#{n}") { puts "some method #{n}" }    
  end
end

C.new("abc") #=> NoMethodError: undefined method `define_method' for #<C:0x2efae80>
Run Code Online (Sandbox Code Playgroud)

ruby metaprogramming

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