我之前发布了一个问题(Performing multiple queries on the same model efficiently),其中StackExchange用户友好地回答并节省了大量处理时间,通过使用{{1}存储SQL查询的结果来避免对我的模型进行大量查询功能
具体而言,他们建议使用.all
这看起来很奇妙,我在我们的代码中的很多地方使用它,但是,刚刚将它上传到实时服务器上我从Phusion Passenger获取@chosenrecords = Everything.where('name LIKE ?', 'What I want').order('price ASC').all
功能的每一行的错误消息。
错误为.all
我之前曾尝试从托管我们网站的公司收集有关他们正在使用的铁路和乘客版本的信息,但没有任何成功。在过去,任何本地工作的东西也可以在服务器上工作,只要我使用syntax error, unexpected '.', expecting kEND .order('price ASC').all
。
任何人都可以建议我如何解决此错误?是否有较旧的函数执行相同的操作并可以在服务器上运行?
答案 0 :(得分:0)
发现旧版本的Passenger似乎不那么强大,代码越过2行,基本上我改变了
@chosenrecords = Everything.where('name LIKE ?', 'What I want')
.order('price ASC').all
以下,它实现了梦想
@chosenrecords = Everything.where('name LIKE ?', 'What I want').order('price ASC').all
希望其他人能从我的方式错误中受益!
答案 1 :(得分:0)
实际上,这不是乘客问题,也不是“代码越来越不稳定”的问题。问题是:
第一个代码展示是非法Ruby语法。如果要将a链接到#order,则必须确保第一行以点结尾。否则Ruby会认为第一行是单个完整语句,第二行也是一个完整语句。显然,Ruby语句不能以点开头,因此在第一个代码展示中,第二行会引发语法错误。