小编She*_*acu的帖子

MySQL按一些列表排序

我有一个数字列表:( 7,1,3,2,123,55这是现有记录的ID)

我与colums一个MySQL表idname,其中id是一个整数主键.我想从该表中选择的记录,但在一个特定的顺序,例如7,1,3,2,123,55.

  • 是否可以在查询中的MyISAM中执行此操作,而无需任何后期处理?
  • 最简单的方法是什么?

php mysql

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

为什么`在Ruby中返回a或b`是一个void值表达式错误?

这很好:

def foo
  a or b
end
Run Code Online (Sandbox Code Playgroud)

这也没关系:

def foo
  return a || b
end
Run Code Online (Sandbox Code Playgroud)

返回void value expression:

def foo
  return a or b
end
Run Code Online (Sandbox Code Playgroud)

为什么?它甚至没有被执行; 它没有通过语法检查.什么void value expression意思?

ruby return operator-precedence or-operator

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

如何检查ruby中是否定义了私有方法

我能找到的最接近的是在Ruby中,如何检查方法"foo =()"是否已定义?,但只有当方法是公共的时,它才有效,即使在类块内.

我想要的是:

class Foo
  private

  def bar
    "bar"
  end

  magic_private_method_defined_test_method :bar #=> true
end
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

class Foo
  private

  def bar
    "bar"
  end

  respond_to? :bar #=> false
  #this actually calls respond_to on the class, and so respond_to :superclass gives true
  defined? :bar #=> nil
  instance_methods.include?(:bar) #=> false
  methods.include?(:bar) #=> false
  method_defined?(:bar) #=> false
  def bar
    "redefined!"
  end # redefining doesn't cause an error or anything

  public
  def bar
    "redefined publicly!"
  end #causes no error, behaves no differently whether …
Run Code Online (Sandbox Code Playgroud)

ruby class

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

为什么10 ^ 9942066是我可以在没有溢出的情况下计算的最大功率?

在红宝石中,一些大数字大于无穷大.通过二进制搜索,我发现:

(1.0/0) > 10**9942066.000000001 # => false
(1.0/0) > 10**9942066 # => true
RUBY_VERSION # => "2.3.0"
Run Code Online (Sandbox Code Playgroud)

为什么是这样?10 9942066有什么特别之处?它似乎不是像9999999这样的任意数字,它不接近任何两个的幂(它与2 33026828.36662442大致相等).

为什么红宝石的无限无限?10 9942066如何参与?


我现在意识到,任何大于10 9942066的数字都会溢出到无穷大:

10**9942066.000000001 #=> Infinity
10**9942067 #=> Infinity
Run Code Online (Sandbox Code Playgroud)

但这仍然留下了一个问题:为什么10 9942066

ruby int biginteger

11
推荐指数
1
解决办法
735
查看次数

Spree 3.0在扩展中添加了允许的属性

所以我正在制作一个狂欢扩展,其中我有自己的属性,我Spree::Shipment在结帐过程中添加并添加了一个输入,问题是我的属性不是出货的允许属性的一部分,并且不清楚如何将其添加到允许的属性中.我找到了这个拉动请求的对话,据说要使用

Spree::PermittedAttributes.shipment_attributes << :my_custom_attribute
Run Code Online (Sandbox Code Playgroud)

但是,目前还不清楚我在哪里放这个!?

"哦,把它放进去spree.rb"

这没有用.我试过把这段代码放进去

lib/spree.rb
lib/spree/permitted_attributes.rb
lib/spree_decorator.rb
lib/spree/permitted_attributes_decorator.rb
Run Code Online (Sandbox Code Playgroud)

(如此处所示)并且所有这些都导致错误抱怨shipment_attributes未被定义(因此可能是在PermittedAttributes评估主文件定义之前运行代码)或者根本没有任何反应.我应该在哪里放置此代码以将我的属性添加到允许的属性列表中?


编辑:由于这对人们来说似乎不清楚,我已经尝试了我发布的链接中列出的所有内容.告诉我尝试其中的东西是非常令人愤怒的.别那样做.

ruby spree strong-parameters ruby-on-rails-4

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

为什么!! 0为假,{} + []为0,但!!({} + [])为真?

刚在我的浏览器控制台中试过这个:

!!0 //=> false
{} + [] //=> 0
!!({} + []) //=> true
Run Code Online (Sandbox Code Playgroud)

这里发生了什么!?

编辑:我说的是{} + [](对象优先)[] + {}(数组优先)不同,后者总是返回0.间距({}+[]vs {} + [])似乎并不重要

javascript

8
推荐指数
1
解决办法
156
查看次数

如何在Rails 4中访问*_path和*_url助手

我正在阅读Rails:从控制台检查路径助手的输出,但没有一个解决方案适合我,大概是因为它们都是Rails 2/3.

在Rails 4/5中,如何从rails控制台访问*_path和*_url助手?

ruby ruby-on-rails-4

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

如何让postgresql与续集和jruby一起工作

require 'sequel'
require 'jdbc/postgres'
DB = Sequel.connect("jdbc:postgresql://user:pass@domain/database")
DB.tables
Run Code Online (Sandbox Code Playgroud)

返回:

....(bla bla bla stack trace bla bla bla)....
Sequel::DatabaseConnectionError: Java::OrgPostgresqlUtil::PSQLException: The connection attempt failed.
...........
Run Code Online (Sandbox Code Playgroud)

我也试过了

jdbc:postgresql://domain/database?user=name&pass=word 
Run Code Online (Sandbox Code Playgroud)

并且也有错误,但是另一个错误('密码请求但未提供')

红宝石1.9.3 - jruby 1.7.3

我看了看,试了很多代码样本,但是我无法让Sequel工作所以,在使用jruby时如何获得与postgres接口的续集?

postgresql jruby jdbc sequel

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

Sinatra基于数据库的会话

我目前正在使用带有Heroku的Sinatra,唯一的同步是数据库.因此,我需要存储在数据库中的会话(希望不使用ActiveRecord).

是否有Rack中间件或其他类似的东西?

session heroku sinatra

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

如何避免实例变量初始化丑陋

我看到我的代码中一直出现这种情况

class Foo
  def initialize(foo)
    @foo = foo
  end
  #...
end
Run Code Online (Sandbox Code Playgroud)

这不是太糟糕,但它变得更糟:

class Foo
  def initialize(foo,baz,bar,a,b,c,d)
    @foo = foo
    @baz = baz
    @bar = bar
    #etc...
Run Code Online (Sandbox Code Playgroud)

你可以通过做类似的事情来解决这个问题

@foo, @baz, @bar = foo, baz, bar
Run Code Online (Sandbox Code Playgroud)

但即使这样做感觉不对,也很烦人.有没有更好的方法根据参数定义实例变量?

编辑:这个问题似乎有2个不同的解决方案.看到:

ruby instance-variables

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

如何在 ruby​​ 中使用“:template”类型的字符串?

rails 路由和 when 以及其他一些我不记得的东西都有一个用户指定的模板字符串,如下所示:

template_str = "I am going to :place at :time"
Run Code Online (Sandbox Code Playgroud)

然后有一些神奇的函数可以嵌入数据代替:placeand :time,如下所示:

template_str.magic_embed_function(place: 'bed', time: '10 pm') 
#=> "I am going to bed at 10 pm"
Run Code Online (Sandbox Code Playgroud)

我怎样才能在我的 ruby​​ 项目中做到这一点?有实现的 gemString#magic_embed_function吗?

ruby replace

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