フォームパラメータを使用して検索するスコープを作成していますが、スコープを条件と組み合わせる方法や現在のスコープを呼び出す方法がわかりません。別のスコープで複数のスコープを再利用して複数のフィールドをレールに作成する
scope :search, ->(param={}) {
all
+ relation.sort_by(param[:sort_by],param[:sort_type]) if param[:sort_by].present?
+ relation.author(param[:author]) if param[:author].present?
+ relation.assignee(param[:assignee]) if param[:assignee].present?
+ relation.milestone(param[:milestone]) if param[:milestone].present?
}
は、別の例としては、次のようになります:(未テスト)プラス記号を使用して
scope :search, ->(param={}) {
relation = all
relation = relation.sort_by(param[:sort_by],param[:sort_type]) if param[:sort_by].present?
relation = relation.author(param[:author]) if param[:author].present?
relation = relation.assignee(param[:assignee]) if param[:assignee].present?
relation = relation.milestone(param[:milestone]) if param[:milestone].present?
relation
}
プラス記号を使用して 'ActiveRecord :: Relation'コレクションを組み合わせることもできますが、これらはすべてオプションなので、ローカル変数を使用する方が意味があります。 :) – codyeatworld
ありがとう、これは私が必要なものです。 :D – KhiemNS
@codyeatworld多分これは愚かな質問ですが、プラス記号は何ですか?あなたは私に例を教えていただけますか? – Aetherus