次のような都市モデルを考えてみましょう。
def self.search(field, search)
if search
where("#{field} LIKE ?", "%#{search}%")
else
scoped
end
end
フィールドが文字列であることを知っているその状況でArelまたはMetawhereを使用するには、次のようなものがあります。
"name" "residents.name" "state.name"
私はそのようなことをしたい(動作しません):
def self.search(field, search)
if search
where(field =~ "%#{search}%")
else
scoped
end
end
それで、あなたの考えは何ですか?
本当の問題は、どうすればそれを変換できるかということです。
"residents.name LIKE'#{value}%'"
それに:
:residents => {:name =〜 "#{value}%"}