С апачем особо не знаком, но не может быть чисто в логах.
500 ошибка - это что-то сломалось на стороне сервера. У меня часто такое бывало, что что-то висло (или долго исполнялось, что свойственно слабым хостингам) и вебсервер обрубал через какое-то время запрос (часто была проблема именно с компилляцией ассетов)
В общем, в каких-то логах точно что-то должно быть: логин юникорна\вебсервера рельс, самого приложения, логах апача, /etc/log и т.д. и т.п., ищите - что-то где-то точно есть
Мне кажется, что если смотреть по файлам - это именно то, что делают God или Monit (могу ошибаться). Процессы, бывает, обрубаются, а файлы остаются. Теряются права. Еще что-нибудь. Хотя, наверное, если сделать идеальное решение в этом плане - то и получится новый "менеджер процессов с гуем"
В чем смысл в простейших случаях решать простейшие вопросы с помощью гемов? Хотя, тут же нужно спросить автора, в чем смысл делать простой новостной сайт на рельсах? или он не совсем простой и не совсем новостной?
@WolfdalE вычисления в sql - это круто. Таким способом можно при желании и умении сильно повысить производительность. Но база данных на то и база данных, что бы хранить данные, а не делать вычисления (в общем случае).
Для вычислений созданы языки программирования general-purpose. Такими темпами - на хабре была статья, как поднять вебсервер на матлабе.
Фреймворки, кстати, это общий случай. Вопрос человека о "небольшом новостном сайте" по поводу того, как организовать количество просмотров поста - тоже довольно таки типичная задача.
@Aice Миграции на то и миграции, что если нужно что-то поменять, то лучше добавить новую, которая перекрывает старую. Если ну очень нужно провести все миграции, а одна из них сломанная - можно временно ее закомментировать.
Почему роллбек не помог? Если есть 20 миграций, вторая из них сломана, то просто нужно 18 раз написать роллбек) хотя, может, есть и более кошерный способ, что б не писать много раз.
мне кажется, он идет в зависимостях у девайса. По идее, если автор снес все миграции, то модель юзер не содержит девайсовских методов. Скорей всего, надо заново сделать rails g devise:install; rake db:migrate
Не используйте (почти) никогда rake db:reset, особенно что бы откатить миграцию) есть rake db:rollback
@Anonym никто не предлагает ничего prefetch. Эта техника называется signals. По названию, думаю, можно понять ее назначение.
Да и если выбирать, кому верить, кому нет, то в вопросах javascript я больше доверяю мнению Крокфорда, Фланагана и им подобным. Да и вообще, больше доверия к тем, кого публикует O`Really
Да, но действительно ли на сервере А есть необходимость обрабатывать этот запрос?
Если я зашел на ваш сайт просто, что б, знаю ID, получить технические характеристики товара (ваш сайт - "прослойка" между API сервером и клиентом), то почему бы мне просто не ввести данные в форму, послать запрос от клиента, получить данные в json (xml), и тут же их не отобразить? Зачем нагружать свой сервер лишними вычислениями?
Просто или у вас специфичная задача и я ее не понимаю, или вы идете нем тем путем, так как гет-запрос к апи на то и создан (часто), что б не нагружать никакие сервера и выполняться у клиента.
Если у вас апи по паролю - это уже скорее специфичная задача. Тогда да, передавайте через форму id и используйте file get contents. Если это именно api, а не что-либо требующее парсинга и т.д., то врядли оверхед curl будет оправдан
@Anonym Эту чушь можно почитать здесь, если есть желание: www.ozon.ru/context/detail/id/18421547
Эта чушь - простейший гет-запрос, который требует минимум ресурсов клиента и не требует затрат сервера.
Естественно, у него свои юзкейсы. Но и вопроса ТС я тоже полностью не понял.
Уточните, зачем вам нужен этот гет-запрос.
Пример:
У вас сервер А, БД - на сервере Б. Пользователь заходит на сервер А и получает html страницу с формой. Вводит название mercedes, html страница посылает get запрос на сервер Б и получает id марки mercedes. Если человека, зашедшего на страницу, интересовало только id, то при таком раскладе на вашем сервере А обрабатывать эти гет-запросы необходимости нет.
@vasilyev направлять все запросы на 1 файл, в этом файле передавать запрос роутеру, роутер определяет, какому контроллеру принадлежит запрос, контроллер проверяет форматы, доступы, параметры и передает данные моделе ? Что-то вроде MVC.
Да, действительно, даже в этом случае нужно "настроить" вебсервер, что бы он перенаправлял все запросы на один файл. Но это именно его задача. А ЧПУ - это уже логига приложения - уже работа самого приложения и языка, на котором оно написано
Да и myjsonarr=data ни к чему. Только вот врядли человеку перед там, как понять, в каком порядке выполняются асинхронные и синхронные функции, нужно почесть javascript the good parts :)
Не усложняйте жизнь человеку. У него элементарный вопрос, в котором еще нужно разобраться, а прототипы, ecmascript 5 и другие в этом по началу врядли помогут