У меня проблема здесь, когда я пытаюсь вызвать метод класса для объекта, который не известен ... э-э, я не уверен, как сформулировать это, я получаю: ресурс из URL, но я хочу запустить find и для другого параметра.
Как я могу сделать что-то вроде:
params[:resource].classify.find(params[:id])
Я имею в виду, что это не сработает, потому что params[:resource].classify
будет строкой. Но как я могу запустить метод, как если бы это был Class
, а не строка?
Следующее использовалось нормально, но гем friendly_id
сделал все мои вызовы к записи, чтобы вернуть его friendly_id, а не фактический первичный ключ ... который полностью отстой.
Он делал что-то вроде этого, который работал просто отлично:
@vote = Vote.new({
:vote => params[:direction] == 'up' ? true : false,
:voteable_type => params[:resource].classify,
:voteable_id => params[:id])
})
Но после добавления friendly_id
мои пути теперь выглядят примерно так:
/things/my-thing-name/vote/up
вместо старого:
/things/328/vote/up
Так что теперь params[:id]
больше не является внешним ключом.
Мысли