小编Dan*_*off的帖子

使用DataMapper选择随机数据

我试图用DataMapper选择随机数据集,但似乎没有这样的功能支持.

例如,我有一组数据:

+-------------------+
| ID | Name | Value |
+-------------------+
| 1  | T1   | 123   |
| 2  | T2   | 456   |
| 3  | T3   | 789   |
| 4  | T4   | 101   |
| ----------------- |
| N  | Tn   | value |
Run Code Online (Sandbox Code Playgroud)

可能有很多数据,超过10万行.

我需要将数据映射到对象:

class Item
  include DataMapper::Resource
  property :id, Serial
  property :name, String
  property :value, String
end
Run Code Online (Sandbox Code Playgroud)

所以,问题是:如何从表中选择随机数据?

SQL中的类似查询将是:

SELECT id, name, value FROM table ORDER BY RAND() LIMIT n;
Run Code Online (Sandbox Code Playgroud)

ruby mysql datamapper

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

从基于 Ruby 的源文件中提取代码片段

我最近一直在玩flog,它是一个非常好的工具,可以为 ruby​​ 应用程序生成代码复杂性报告。在项目代码库上运行的结果是, flog您会得到类似于以下内容的输出:

  1272.3: flog total
     7.3: flog/method average

    62.2: MyClass#foobar lib/myclass#foobar:123
    ... more similar lines ...
Run Code Online (Sandbox Code Playgroud)

上面的示例提供了方法的分数,并引用了定义该方法的源代码中的确切行号。这可以是常规实例/类方法或任何其他“动态”方法,例如。耙子任务等等。

因此,目标是从源文件中提取一段代码(很可能是一个方法),该代码以 flog 输出中定义的行号开头。然后,该代码片段可以在某些 Web UI 中用于显示各种代码指标(基于其他工具,例如flay)和/或存储在数据库中。据我所知,这个任务涉及将 ruby​​ 代码解析为 AST,然后遍历树找到相应的起始行并找出结束行号。我已经用这个库做了一些实验 - https://github.com/whitequark/parser,大部分时间都有效,但获得正确的结果有点棘手。

还有其他解决方案可以从用 ruby​​ 编写的源文件中快速提取方法代码吗?

ruby parsing abstract-syntax-tree code-complexity

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

Rails应用程序的常见用法?

Rails应用程序最常见的任务是什么?我的意思是,例如,对于小型和简单的网站,人们通常会选择PHP,因为它很容易维护和部署,大多数托管平台都支持您的所有需求.但我对人们通常用Rails产生的东西很感兴趣.什么样的应用程序?

ruby ruby-on-rails

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

如何使用DataMapper仅获取模型的指定字段?

我无法找到在特定上下文中仅获取必要的模型字段的方法.让我们说我有一个巨大的模型,有大约30个领域(属性).但是出于搜索目的,我只需要几个.

例:

class Foo
  include DataMapper::Resource

  property :id, Serial
  property :title, String, :length => 256
  property :description, Text
  property :url, String, :length => 4096
  property :city, String, :length => 64
  property :country, String, :length => 64
  property :state, String, :length => 64
  property :created_at, Time
  property :updated_at, Time
  property :expires_at, Time
  ... etc fields ...
end
Run Code Online (Sandbox Code Playgroud)

因此,对于前端(Web应用程序),大多数字段都被使用.但对于搜索,我只需要说:标题,:城市,:州.它很容易查询数据

items = Foo.all(:title.like => 'Some stuff')
Run Code Online (Sandbox Code Playgroud)

然后我需要将获取的数据打包到JSON中.据我所知,有一个名为dm-serialize的DataMapper模块可以处理所有操作.

最后,我做输出包:

response = {:error => 0, :count => items.length, :data => items}
response.to_json
Run Code Online (Sandbox Code Playgroud)

但输出项目包含所有字段,而我只需要获取其中的一些字段.由于某些原因,延迟加载不起作用.

问题是:如何指定要选择的模型字段?

ruby datamapper

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