Как вы упомянули выше, "where" возвращает объект ActiveRecord :: Relation, вы можете проверить его, выполнив:
@project =
@user.where({:projects => {:project_member_id => user.id}}).class
Чтобы вернуть коллекцию экземпляров объектов и запустить find, вы можете попытаться форсировать ее, выполнив что-то вроде:
@project =
@user.where({:projects => {:project_member_id => user.id}}).all.find_by_id(params[:id])
Метод любви в Rails!
Однако сначала будут найдены все проекты с переданным uesr.id (который может быть дорогостоящим и, вероятно, не тем, что вы хотите) ...
Удачи!