Rails 3:无法使用#send方法调用ActiveRecord查询(NoMethodError)

Dav*_* B. 2 ruby activerecord ruby-on-rails

在rails控制台中,我得到了这些结果:

Employee.send("find_by_shop_id(2)")
NoMethodError: undefined method `find_by_shop_id(2)' for <Class:0x000000032f75d0> from /var/lib/gems/1.9.1/gems/activerecord 3.1.4/lib/active_record/base.rb:1088:in `method_missing'
Run Code Online (Sandbox Code Playgroud)

但是当我直接输入方法时:

Employee.find_by_shop_id(2)
=> #<Employee id: 2, first_name: "Roger", last_name: "Bartoletti", email: "marilie_hane@harris.biz", shop_id: 2>
Run Code Online (Sandbox Code Playgroud)

为什么#find_by_shop_id无法"发送"?

谢谢

MrW*_*hog 5

您尝试执行的方法find_by_shop_id不是find_by_shop_id(2).该send方法需要一个方法名称,后跟参数.例如,

Employee.send "find_by_shop_id", 2
Run Code Online (Sandbox Code Playgroud)