ruby-on-rails - ActiveRecord 存在吗?与协会

标签 ruby-on-rails ruby activerecord

我有以下 ActiveRecord 调用:

@payment = account.business.payments.find(params[:id])

它通过关联搜索 ID 为 params[:id]payment。但是,这会引发 RecordNotFound 异常。

我想调用 exists? 来查看记录是否存在以避免抛出异常。执行 Payment.exists?(account.business.payments.find(params[:id])) 不起作用。

我只想搜索属于业务付款,而不是通过执行Payment.exists来搜索所有付款?(:id => 参数[:id])。这样我就可以知道这是该特定帐户的业务付款。

我该怎么做?

注意: account has_one businessbusiness has_many payments.

最佳答案

使用 where 而不是 find,它将返回一个 ActiveRecord::Relation 表示 0 条或多条记录,您可以从中链接.exists?:

@payments = account.business.payments.where(id: params[:id])


if @payments.exists?
  # ...
end

关于ruby-on-rails - ActiveRecord 存在吗?与协会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17221265/

相关文章:

ruby-on-rails - Mechanize::ResponseReadError - Content-Length 与响应正文长度不匹配

ruby-on-rails - 在Gemfile中将插件指定为来自github的gem

ruby-on-rails - 在 Rails 中使用哈希数组进行分页?

ruby-on-rails - 将对象添加到一对多关系 ROR

ruby-on-rails - 使用上帝监控 unicorn - 以非零代码开始退出 = 1

sql - 事件记录按两个单独的值分组

mysql - 在codeigniter中增加子元素数据库获取

ruby-on-rails - 用以前的加密设计

ruby-on-rails - 如何根据父对象的状态验证嵌套模型对象?

ruby-on-rails - 使用相同的操作来显示所有(索引)对象,同时还显示由 url 参数限定范围的列表