小编Mat*_*ggs的帖子

Ruby字符串可变性

这可能是一个小小的问题,我最近一直试图在ruby上做得更好,并开始阅读精彩的The Ruby Programming Language.提到的是字符串文字被认为是可变的,因此在循环中最好使用变量然后使用文字,因为新字符串将在每次迭代时实例化.

我的问题是为什么?起初我认为这是因为插值,但符号是不可变的,它们支持插值.来自静态背景,对我来说并没有多大意义.

编辑:

看完后thenduks答案,我想我可能有它.AFAIK,Java或C#等语言没有破坏性的字符串方法(它们使用upcase,但不是upcase!).因为像upcase这样的东西!或<<,文字不能是不可改变的.

不是100%肯定,另一种可能性是它发生了编译时实习,这在脚本语言中是不会发生的.

ruby string

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

用sqlite在rails中的布尔值

我仍然是一个仍然使用rails的菜鸟,但我遇到的东西看起来有点奇怪.我因此在数据库中为模型添加了一个布尔字段

t.column :admin, :bool, :default => false, :null => false
Run Code Online (Sandbox Code Playgroud)

但是,sqlite3数据库中的值似乎是't'或者'f'.这很好,但user.admin?如果值为,我仍然希望返回false 'f'.从下面的控制台会话中可以看出,情况并非如此:

>> user = User.first
=> #<User id: 2, login: "matt", name: "", email: "google.ninja@no-spam.com", crypt
ed_password: "c6740f820b4cbf6e3d88188719f23cd3053a54f0", salt: "5629f5ee09f51543
a7d64dd903b8d9e53aa43a24", created_at: "2009-04-26 23:08:05", updated_at: "2009-
04-26 23:10:38", remember_token: nil, remember_token_expires_at: nil, admin: "t"
>
>> user.admin?
=> true
>> user.admin = false
=> false
>> user.save
=> true
>> user = User.first
=> #<User id: 2, login: "matt", name: "", email: …
Run Code Online (Sandbox Code Playgroud)

ruby sqlite boolean model ruby-on-rails

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

耙子流产了!未初始化的常量Mysql2

Goksel-Eryigits-Mac-mini:blog geryit$ rake db:migrate --trace
(in /Users/geryit/Sites/blog)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
rake aborted!
Client does not support authentication protocol requested by server; consider upgrading MySQL client
/Users/geryit/.rvm/rubies/ruby-1.8.7-p330/lib/ruby/1.8/mysql.rb:453:in `read'
/Users/geryit/.rvm/rubies/ruby-1.8.7-p330/lib/ruby/1.8/mysql.rb:130:in `real_connect'
/Users/geryit/.rvm/gems/ruby-1.8.7-p330/gems/activerecord-3.0.3/lib/active_record/connection_adapters/mysql_adapter.rb:600:in `connect'
/Users/geryit/.rvm/gems/ruby-1.8.7-p330/gems/activerecord-3.0.3/lib/active_record/connection_adapters/mysql_adapter.rb:164:in `initialize
.
.
.
Run Code Online (Sandbox Code Playgroud)

database.yml的

development:
  adapter: mysql
  encoding: utf8
  database: test
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)

ruby mysql rubygems ruby-on-rails

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

如何设置savon默认超时值

我正在使用savon进行一些api调用,但是由于我正在及时出错,需要很长时间才能响应.所以有任何方法可以更改超时的默认值.我使用savon 0.7.9 ruby​​ 1.8.7和rails -v 2.3.2.

soap ruby-on-rails savon

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

WPF:禁用ListBox,但启用滚动

整个上午都在撞我的头.

基本上,我有一个列表框,我想让人们不要在长时间运行的过程中更改选择,但允许他们仍然滚动.

解:

所有答案都很好,我选择了吞咽老鼠事件,因为那是最直接的.我将PreviewMouseDown和PreviewMouseUp连接到单个事件,该事件检查了我的backgroundWorker.IsBusy,如果将事件args的IsHandled属性设置为true.

wpf listbox scrollbar

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

目的是什么:列表和:在vim中打印?

不寻找帮助文件,更多为什么要使用它们?

vim

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

如何根据mongo中的现有数据进行更新

一个mongo noob的排序,我有一种感觉我正在从错误的方向解决这个问题.

我有大约700万份文件集.每个文档都有两个我想要修改(不替换)的字段,基本上它们都是大字符串,\\n我想用它们替换它们\n.

我花了大约一个小时试图找到一种方法来"反向引用"查询返回的对象,这完全不存在.对于这样的事情,最好的方法是什么?

mongodb

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

在heroku上缩放凤凰

我对heroku没有一点经验,甚至没有凤凰的经验,所以这可能是一个愚蠢的问题...但是要确保我在托管上做出了不错的选择:)

根据我的理解,你扩展phoenix的方式是添加另一个服务器,启动另一个节点,然后连接它们,然后让BEAM/OTP发挥其魔力来处理工作负载平衡.在heroku上,dynos无法真正通过本地网络进行通信,根据我的理解,这是BEAM需要集群的东西.因此,添加dynos将导致更"传统"的缩放模型,其中您有一个外部负载平衡器,用于平衡未连接节点之间的连接,db是共享状态.

我的问题是这会产生多大的影响?当你达到严重的负载/规模水平时,它是否只是一个问题,还是意味着在基础设施上花费更多的钱是必要的?

scalability heroku elixir phoenix-framework

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

find_by_sql相当于mongoid?

是否有某种类型的find_by_sql等效于mongoid,你传递一个mongo查询并从结果中实现Mongoid :: Document s?

ruby mongodb mongoid

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

如何使用 Devise 和 Rails 3 实现渐进式参与?

我正在尝试使用 Devise + Rails 实现延迟注册(又名延迟身份验证,又名渐进式参与)网站流程。

通过逐步参与,我的意思是

“在用户绝对必须登录之前不要让她登录,而要让她玩转并在网站上被记住”

我正在寻找一种简单的方法来使用devise来做到这一点。我觉得这是许多其他人不得不做的事情,但我还没有找到关于它的文档。

以下方法在我的脑海中听起来不错,所以我将开始:

  1. 创建仅“可记住”的用户
  2. 当访问某些页面时,要求这些用户有更多的数据,比如用户名和密码,通过类似“before_filter :authenticate_user!”之类的东西。在适当的控制器中。

这种方法有意义吗?有没有更好的?您是否愿意分享使用 Devise + Rails 的渐进式参与方法来注册/注册表格?

ruby-on-rails ruby-on-rails-plugins devise

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