小编NJ.*_*NJ.的帖子

counter_cache实现的问题

我得到'耙子流产!... posts_count标记为只读'错误.

我有两个模型:用户和帖子.

users has_many posts.

posts belongs_to :user, :counter_cache => true
Run Code Online (Sandbox Code Playgroud)

我有一个迁移,它将posts_count列添加到users表,然后计算并记录每个用户的当前帖子数.

self.up
  add_column :users, :posts_count, :integer, :default => 0

  User.reset_column_information
  User.all.each do |u|
    u.update_attribute( :posts_count, u.posts.count)
  end
end
Run Code Online (Sandbox Code Playgroud)

当我运行迁移时,我收到错误.这当然非常明确,如果我从posts模型中删除:counter_cache声明,例如

belongs_to :user
Run Code Online (Sandbox Code Playgroud)

迁移运行正常.显然,这没有意义,因为你无法以这种方式真正实现它.我错过了什么?

ruby-on-rails counter-cache

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

如何让Rails视图处理数据库内容中的HTML标记?

好.我知道这是非常基本的.我希望在数据库中的文本内容周围有一些基本标签,以便在视图的渲染中进行处理.

基本上,我有一个名为Page的模型.

rails g model Page name:string content:text
Run Code Online (Sandbox Code Playgroud)

我希望在视图中显示内容字段中的任何内容,但是,如果内容字段中有HTML,我希望它不仅仅显示就可以处理.

例如,在我的Page#show view中,我可能有:

<%= @page.content %>
Run Code Online (Sandbox Code Playgroud)

哪个输出:

<p>这是我的第一个<b>段落</ b>.</ p>

当我想要输出时:

这是我的第一段.

再次,请温柔.我知道这可能是非常基本但我很难找到如何做到这一点.:)

ruby-on-rails

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

将一个或两个参数传递给Rake任务

我有一个rake任务,我想传递参数.例如,我想发出一个命令

<prompt> rake db:do_something 1
Run Code Online (Sandbox Code Playgroud)

在rake任务中:

...
cust = Customer.find( the_id_passed_in )
# do something with this customer record, etc...
...
Run Code Online (Sandbox Code Playgroud)

很简单,对吧?

rake ruby-on-rails

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

在SELECT中将列值拆分为两列?

我在varchar列中有一个字符串值.它是一个包含两部分的字符串.在它到达数据库之前拆分它不是一个选项.

列的值如下所示:

one_column:
'part1 part2'
'part1 part2'
Run Code Online (Sandbox Code Playgroud)

所以我想要的是一个结果集,如下所示:

col1,col2:
part1,part2
part1,part2
Run Code Online (Sandbox Code Playgroud)

如何在SELECT语句中执行此操作?我找到了一个pgsql函数来将字符串拆分成一个数组,但我不知道如何将它分成两列.

postgresql select split

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

PostgreSQL 9中的日历表

我正在建立一个分析数据库(我对数据和业务目标有深刻的理解,只有基本到中等的数据库技能).

我遇到过一些关于构建类似仓库的参考资料,这些仓库实现了"日历表"的概念.这很有意义,而且很容易完成.但是,我看到的大多数示例都是将范围限制为"日"的日历表.我的数据需要分析到小时级别.可能是几分钟.

我的问题:在空间效率和查询/排序速度方面,小时/分钟级别粒度的日历表的实现是否有价值?如果是这样,你能推荐一个表结构和种群方法/例子吗?

我的主要数据表将在任何给定时间包含2千多万行数据,并且用于分析的典型子集在1到5百万范围内.所以,正如你所看到的,那就是很多时间戳字段.

postgresql database-design data-warehouse rails-postgresql

13
推荐指数
2
解决办法
7350
查看次数

控制Rails中使用的ruby版本

我有一个使用Rails 3.0.6的应用程序,我在两台机器上运行.我从ruby 1.8.7开始,最近安装了ruby 1.9.我在'/ usr/bin/ruby​​'中交换了我的链接指向1.9安装.当我运行'ruby --version'时,我得到1.9.但是,在我的rails应用程序中,当我检查'RUBY_PLATFORM'时,它显示rails正在运行1.8.7.

如何告诉Rails使用哪种ruby环境?奇怪的是,这不是最容易搜索的东西.可能是因为我不太了解它形成一个具体的问题.

ruby ruby-on-rails

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

快速处理大量CSV数据的最佳方式

我有需要处理的大型CSV数据集(10M +行).我还有两个需要为输出引用的文件 - 它们包含的数据可以放大我们对CSV文件中数百万行的了解.目标是输出一个新的CSV文件,其中每个记录与其他文件中的附加信息合并.

想象一下,大型CSV文件有交易,但客户信息和账单信息记录在另外两个文件中,我们想要输出一个新的CSV,每个交易都链接到客户ID和账户ID等.

一位同事有一个用Java编写的功能程序来执行此操作,但速度非常慢.原因是具有数百万行的CSV文件显然需要经过许多次,多次.

我的问题是 - 是的,我到了 - 我应该如何在Ruby中处理这个问题?目标是让它更快(现在18小时以上,CPU活动很少)

我可以将这么多记录加载到内存中吗?如果是这样,我该怎么做?

我知道这有点模糊.只是寻找想法,因为这对我来说有点新鲜.

ruby csv

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

在不同的服务器上使用Rails的postgresql COPY命令的问题

我有一个已成功运行数月的rails应用程序.在一些地方,我通过ActiveRecord :: Base.connection.execute(sql_code)直接调用数据库

由于最近需要扩展,我刚刚添加了第二台服务器进行数据处理.我想运行相同的应用程序,但通过网络连接到其他数据库服务器.这是唯一的区别.应用程序的所有其他区域都可以工作 - 它可以连接到远程数据库.

它破坏的地方,是我有rails的地方发出psql COPY命令来导入csv文件.

   result = ActiveRecord::Base.connection.execute( @PGSQL_COPY_COMMAND )     # perform the copy command
Run Code Online (Sandbox Code Playgroud)

这失败并说无法找到csv文件.我已经验证它在那里,并且对于运行rails app和postgres用户的用户都是可读的.

我错过了什么吗?

postgresql ruby-on-rails

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

将Rails模型连接到数据库视图?

我听说你可以将rails中的模型绑定到数据库视图(而不是通常的表格),这只是通过创建一个具有模型表通常具有的名称的视图来实现圆顶.

我没有让它在带有PostgreSQL 9的rails 3.0.5中运行.

有什么我想念的吗?

postgresql ruby-on-rails

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

如何在R中调整/控制树形图中的比例(使用"投资组合"库)?

我正在使用R和'portfolio'库来构建树形图.比例默认为'-1000到1000'.

例如,我需要它为'0到1000'.我知道map.market()有一个'scale'参数,但我无法弄清楚要传递给它的内容.

portfolio r treemap

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