Можете ли вы найти по трем признакам? - PullRequest
1 голос
/ 13 мая 2011

Разрешен ли этот тип вещей в Rails: Model.find_by_X_and_Y_and_Z(attribute1, attribute2, attribute3)

Ответы [ 2 ]

3 голосов
/ 13 мая 2011

С http://ar.rubyonrails.org/classes/ActiveRecord/Base.html

Также возможно использовать несколько атрибутов в одной и той же находке, разделив их "и", так что вы получите искатели, такие как Person.find_by_user_name_and_password или даже Payment.find_by_purchaser_and_state_and_country .Поэтому вместо того, чтобы писать Person.find (: first,: condition => ["user_name =? AND password =?", User_name, password]), вы просто делаете Person.find_by_user_name_and_password (user_name, password).

0 голосов
/ 13 мая 2011

Как еще одно решение, я думаю, вы могли бы попытаться объединить несколько областей. Я имею в виду, что вы все равно будете использовать несколько отдельных областей для извлечения некоторых данных, так что вы могли бы просто попробовать.

Итак, представьте, что у вас есть модель:

class YourModel < ActiveRecord::Base
  scope :sent,where(:sent => true}
  scope :by_param,lambda{|query| where("param= ?","#{query}")}
end

тогда просто используйте

YourModel.sent.by_par("something")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...