rails find_by三个字段 - 是否可能?

Noa*_* B. 1 ruby activerecord ruby-on-rails

是否可以使用find_by超过2个字段?

喜欢:

feedback = Feedback.find_by_field_a_and_field_b_and_field_c("A", "B", "C")
Run Code Online (Sandbox Code Playgroud)

pdo*_*obb 5

是的,这在Rails 3中是可能的,但在Rails 4中已被弃用.因此建议使用此语法(如果使用Rails 4):

feedback = Feedback.find_by(field_a: "A",field_b: "B",field_c: "C")
Run Code Online (Sandbox Code Playgroud)

有关find_by的信息,请参阅api文档.

如果你仍然使用Rails 3,那么最好这样做(出于性能原因并且因为它更接近Rails 4语法):

feedback = Feedback.where(field_a: "A",field_b: "B",field_c: "C").first
Run Code Online (Sandbox Code Playgroud)