rails 4, wie, wo und wo in der Bedingung, gleichzeitig
Ich habe die folgende Abfrage
model = (1,2,3,4)
@posts = Post.where(category_id: id, product_model_id: model)
Meiner obigen Abfrage ist die justing unter der 1
aus dem Modell-wie kann ich where in
Zustand hier
Bearbeiten-1
Dieses Stück code funktioniert, aber ich fühle mich nicht als gute-code richtig?
@posts = Post.where("category_id = ? and product_model_id in (#{model})", id)
Bearbeiten-2
Wenn ich
@posts = Post.wo("category_id = ? und product_model_id in (?)", id, model)
Werfen Fehler wie
invalid input syntax for integer: "15,16"
weil mein input ist wie diese
select * from posts where category_id=5 and product_model_id in ('15,16')
Wie man es richtig dann..
Der code unterliegt der Injektion, die Sie nicht haben können: Modell = (1,2,3,4) in ruby meinst du ein array???
Bitte haben Sie einen Blick auf mein edit
siehe unten meine Antwort
Bitte haben Sie einen Blick auf mein edit
siehe unten meine Antwort
InformationsquelleAutor overflow | 2013-11-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
oder
user_ids = User.all.ids
und dannPost.where("user_id in (?)", user_ids)
InformationsquelleAutor bjhaid
Entsprechend der rails-guide, können Sie ein array übergeben, um
where
und es sollte verstehen, das Sie verwenden möchten. Siehe die Anleitung hier: http://guides.rubyonrails.org/active_record_querying.html#subset-conditionsIch bin ein wenig verwirrt durch Ihre syntax, da
model = (1, 2, 3, 4)
sieht nicht wie gültige array-syntax.Relevanten Teil der Anleitung:
InformationsquelleAutor Max
Könnten Sie arel, aber ich würde einfach etwas wie:
@posts = Post.where("category_id = ? AND product_model_id IN (?)", id, model)
InformationsquelleAutor CDub