0

这:

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 部分,控制台启动时没有问题,但是当我尝试我的简单查询时,它失败并出现同样的错误。

我现在正在尝试什么

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

我的问题可能在哪里?

4

2 回答 2

2

不是您问题的真正答案,但我个人尝试在我的代码中尽可能少地使用直接 SQL。

查看 squeel gem,它会对此有所帮助,尤其是这种查询。 https://github.com/ernie/squeel

于 2013-05-19T23:53:32.020 回答
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

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

于 2013-05-20T04:14:09.047 回答