ruby-on-rails - 在 Rails 中使用数据库列别名时出现 NoMethodError

标签 ruby-on-rails ruby postgresql activerecord alias

当我尝试对聚合使用列别名时出现未定义的方法错误 (PostgreSQL)

在我的模型中:

class B2bLoginAttempt < ActiveRecord::Base
  set_table_name "b2b_logins"
end

在我的 Controller 中:

    @client_ip = request.env['REMOTE_ADDR']
    @sql = "select count(id) as failed_logins FROM b2b_logins WHERE ip_address = '"+@client_ip+"'"

    f = B2bLoginAttempt.find_by_sql(@sql)
    failed_attempts = f.failed_logins.to_s
    f.destroy

然后我看到:# 的未定义方法“failed_logins”

最佳答案

出现错误是因为find_by_sql返回的是一个数组,所以需要写f.first.failed_logins.to_s而不是f.failed_logins.to_s。 检查 find_by_sql 文档 here .

关于ruby-on-rails - 在 Rails 中使用数据库列别名时出现 NoMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13976273/

相关文章:

javascript - 根据日期更改链接

mysql - 将 mysql 转储导入新的 Redmine 实例时出现未知列 'tokens.update_on'

ruby-on-rails - Rails - 如何从 http ://example. com 重定向到 https ://www. example.com

c# - 在 ASP.NET Core 中为每个 SQL 命令打开/关闭数据库

ruby-on-rails - Rails 路由错误。没有路线错误

Ruby:合并嵌套哈希

ruby-on-rails - Sunspot Solr 指定偏移量和限制

ruby-on-rails - 运行 RoR 测试的未初始化常量 Capybara (NameError)

django - 在一个用于CI(Bamboo)的容器中运行postgres 9.5和django

PHP无法在ubuntu中连接到postgreSQL