我无法使Active Record简单查询

时间:2013-05-19 23:29:01

标签: ruby-on-rails ruby activerecord

此:

User.where 'id < ?', 5

失败并显示以下消息:

NoMethodError: undefined method `join' for #<Class:0x007fa4c9b5a598>

当我尝试:

User.where 'id < 5'

它有效。

在另一个项目中:

User.where 'id < ?', 5

作品。

哪里可能是我的问题?

更新

我可以解决问题但是评论一个宝石:

# gem 'cancan'

工作流程

然后当我运行控制台时,我得到:

load error: ~/.irbrc
NameError: uninitialized constant ApplicationController::CanCan

我的简单查询有效。

不工作流程

然后我评论CanCan部分应用程序控制器和控制台启动没有问题,但是当我尝试我的简单查询时它失败并出现相同的错误。

我现在正在尝试

join中搜索~/.irbrc,我得到了几个结果。但我不确定我在做什么。

哪里可能是我的问题?

2 个答案:

答案 0 :(得分:2)

不是你的问题的答案,但我个人尝试在我的代码中使用尽可能简单的SQL。

查看squeel gem,这将有助于此,特别是这种查询。 https://github.com/ernie/squeel

答案 1 :(得分:0)

我在~/.irbrc

中有这个片段
203   # instead of User.find(...) you can do user(...)
204   #   without arguments it only returns the model class
205   #   based on http://www.clarkware.com/blog/2007/09/03/console-shortcut
206 #  Dir.glob( File.join(Dir.pwd, *%w<app models ** *.rb>) ).map { |file_name|
207 #    table_name = File.basename(file_name).split('.')[0..-2].join

我对所有块进行了评论,现在它可以工作了。好吧,我复制了那个文件而从来没有理解过它。