Powiedzmy, że chcę utworzyć stronę, która może wysłać zapytanie do żądanego obiektu za pomocą typu (string) i id (int).Model referencyjny z wprowadzeniem łańcucha znaków
/kwerendy? Type = ludzie & id = 1
byłoby mi sprowadzić
Person.find (1)
natomiast
/que ry? type = miast & id = 123
będzie pobierał mi
City.find (123)
Jednak mam problemy, jak przełożyć struny do żądanej klasa modelu.
Jedynym sposobem mogę myśleć jest
case params[:type]
when 'people'
@object = Person.find(params[:id])
when 'cities'
@object = City.find(params[:id])
end
Jednak metoda ta będzie dość problematyczne, jeśli mam więcej typów modeli.
Czy istnieje lepszy sposób?
Dziękuję z góry,
Jeśli spróbujesz zrobić to automatycznie może skończyć się w sytuacji, gdy atakujący może wysłać "/query? type = TOP_SECRET_TABLE & id = 1 "i uzyskać informacje, do których nie powinien mieć dostępu. Uważaj na to, co chcesz. – Sebi
Jest to faktycznie przeznaczone do oznaczania obiektów przez ajax. Tak więc moim następnym krokiem będzie jak tag @ object.tags <<. Ale chciałem, aby pytanie było proste, więc zapytaj w ten sposób. W każdym razie dzięki! – rickypai