我正在尝试查询以下内容
Vehicle.where(:account.name => "").count
我收到此错误:
NoMethodError: undefined method `name' for :account:Symbol
已在模型上定义了Vehicle和Account之间的关联,以及我的用户约定。为什么我会收到此错误?
Vehicle.rb
class Vehicle < ActiveRecord::Base
belongs_to :account
end
Account.rb
class Account < ActiveRecord::Base
has_many :vehicles
end
模式
create_table "accounts", force: true do |t|
t.string "name"
...
end
create_table "vehicles", force: true do |t|
t.integer "account_id"
...
end
答案 0 :(得分:3)
您可以使用以下内容:
Vehicle.joins(:account).where("accounts.name = ?", "").count
您还可以搜索空白字段:
Vehicle.joins(:account).where("accounts.name <> ''").count
答案 1 :(得分:0)
引发错误是因为rails将account
视为一列,如果您想要关联表的条件然后在它们之间进行连接,如下所示
Vehicle.joins('account').where("account.name IS NULL").count