小编lul*_*ala的帖子

如何在ruby中访问类方法和实例方法?

通过搜索一些博客和文章,我发现Ruby中的每个类本身都是一个实例Class.类方法和实例方法之间的差别是什么,ruby允许创建对象的对象?

我尝试做这样的事情,但仍然无法理解

str = Class.new(String)
=> #<Class:0xb5be1418>

my_str = str.new()
=> ""

my_str = str.new("hello")
=> "hello"

my_str.class
=> #<Class:0xb5be1418>

str.class
=> Class
Run Code Online (Sandbox Code Playgroud)

现在完全混淆所以告诉我这个

ruby ruby-on-rails ruby-on-rails-3

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

做Rails sql查询缓存命中数据库?

在我的Rails应用程序中,我在服务器日志中的SQL查询期间看到了一些"缓存":

[DEBUG] CACHE(0.0ms)SELECT regions.*FROM regionsWHERE regions.name='NY'LIMIT 1

我想知道这些缓存是由Rails还是由MySQL本身完成的?换句话说,这些缓存的查询是否会触及数据库层?

ruby-on-rails

6
推荐指数
2
解决办法
1450
查看次数

Solr - 最常搜索的词

我正在尝试组织一个 solr 搜索引擎。我已经设置了拼写错误系统和建议。

然而,我似乎无法找到如何检索 solr/lucene 中搜索次数最多的 10 个单词/术语/关键词。我怎样才能得到这个?我想在我的主页上显示它们。

lucene search solr

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

防止选择下拉列表打开但允许其事件触发

有什么方法可以捕获html选择事件,并阻止打开html选择下拉列表?(由于事件也将被禁用,因此排除禁用html选择.)

html select drop-down-menu

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

使用Ruby CSV提取一列

我一直在尝试从csv文件中获取单个列.

我已经阅读了文档,http://www.ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html 但仍然不太了解如何使用它.

如果我使用CSV.table,那么响应速度非常慢CSV.read.我承认我加载的数据集非常大,这正是我只想从中获取单个列的原因.

我的请求目前看起来像这样

@dataTable = CSV.table('path_to_csv.csv')
Run Code Online (Sandbox Code Playgroud)

当我调试时,我收到了回复

#<CSV::Table mode:col_or_row row_count:2104 >

文档说我应该能够使用by_col(),但是当我尝试输出时

<%= debug @dataTable.by_col('col_name or index') %>
Run Code Online (Sandbox Code Playgroud)

它给了我"未定义的方法'col'错误"

有人可以向我解释我应该如何使用CSV?如果有一种方法可以使用'read'代替'table'来更快地获取列?

我正在使用Ruby 1.92,它说它使用的是更快的CS,因此我不需要使用FasterCSV gem.

ruby csv

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

如何在Windows上将Bitbucket项目导入Github

我有一个在Bitbucket上托管的HG项目,我想把它移到Github.

我遵循这里的指南在我的TortoiseHG上安装hg-git扩展.

我已经在Github上创建了一个存储库,但还没有初始化它(它显示了该指令页面),所以我无法克隆那个git存储库.

接下来我该怎么办?

编辑:抱歉忘记添加,然后我将使用git.

更新:我借了一个mac并且fast-git-import无痛地转换它.如果有人尝试过以下解决方案并在Windows下工作,那就投票吧,我会把它作为答案.

git mercurial github tortoisehg hg-git

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

如何在表单文本区域中编辑序列化哈希列

我在公司模型中有一个序列化列:

class Company < ActiveRecord::Base
  serialize :names
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望它在数据库中存储这样的不同名称:

---
short: bestbuy
long: bestbuy ltd.
Run Code Online (Sandbox Code Playgroud)

目前在我的公司#edit 页面中,我有一个文本区域:

<%= f.text_area :names %>
Run Code Online (Sandbox Code Playgroud)

如果数据库中有该 YAML,它将在浏览器中显示为:

{"short"=>"bestbuy", "long"=>"bestbuy ltd."}
Run Code Online (Sandbox Code Playgroud)

然而,当我提交它时,在数据库中它变成了:

--- ! '{"short"=>"bestbuy", "long"=>"bestbuy ltd."}'
Run Code Online (Sandbox Code Playgroud)

问题

我怎样才能让textarea显示YAML供编辑者编辑?

如何使数据库保存正确的 YAML,而不是 YAML 和 ruby​​ 哈希的混合?

更新

如果我强制列的类型Hash如下:

serialize :names, Hash
Run Code Online (Sandbox Code Playgroud)

当我尝试保存时会出现错误:

Admin::CompaniesController#update 中的 ActiveRecord::SerializationTypeMismatch
属性应该是哈希值,但实际上是字符串

serialization ruby-on-rails ruby-on-rails-3

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

在rails中合并两个/三个记录

我想将两个配置文件合并为一个.在Rails中执行此操作的最佳方法是什么.

我有两个配置文件说user1,user2并且至少有30个表与它们相关联.

现在我想将它们合并在一起,以便应该有一个配置文件说user1并且user2应该被删除但是现在所有关联的数据user2应该关联user1.

例如:假设user2有两个联系人并且user1在合并用户之后有3个联系人user1应该有5个联系人.

merge ruby-on-rails merging-data ruby-on-rails-3

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

确定Ruby中的一条路径是否在另一条路径下?

我有两个路径:应用程序根路径和目标路径.确保目标路径是应用程序根路径的子节点的最简单方法是什么?

基本上,用户提供的目标路径将由我的服务器显示.但是我想约束我的服务器,因此只有应用程序根路径下的文件可以显示.所以我想检查目标路径是否在根路径下.

根路径可以包含嵌套目录.

ruby

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

为什么有时需要安装minitest gem?

我正在使用 Ruby 2.0。

有时我会遇到无法简单地解决的情况require 'minitest'。它给了我

irb> require 'minitest'
LoadError: cannot load such file -- minitest
from rubygems/core_ext/kernel_require.rb:55:in `require'
Run Code Online (Sandbox Code Playgroud)

我需要先安装 minitest gem。不过我认为 minitest 是捆绑在 Ruby 标准库中的。

什么时候我们需要通过gem installGemfile 显式安装 minitest gem?

如果需要显式安装,是否应该bundle install优先选择Gemfile gem install

更新

我自己用的是rbenv。我也通过 rbenv 安装 Ruby。
我的ruby版本是ruby 2.0.0p353(2013-11-22修订版43784)[x86_64-darwin13.0.2]

ruby rubygems minitest

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