2013-05-05 3 views
0

Вот вызов программирования, с которым я сталкиваюсь. Я новичок в этом ...Внедрение ассоциации с задержкой в ​​Rails

Я бы хотел сделать это Rails Way с элегантным кодом и узнать что-то в этом процессе.

В моем приложении игроки отслеживают действие (25 минут фокуса, начиная с полчаса). Действие # new form загружается в начале, но не сохраняется до конца 25 минут. Последние 2 минуты являются ретроспективными и включают в себя некоторые требуемые вопросы «как это получилось».

Теперь я хочу добавить таблицу Insights. Я представляю отдельную небольшую «новую Insight» форму, которая вписывается в более крупную форму «нового действия». Я хочу сохранить Insight в любое время, когда это придет ко мне.

Я также хочу, чтобы Insight был связан с этим конкретным действием ... хотя действие еще не создано, и я не знаю, какой он будет иметь (кто-то еще может записать свое действие до того, как я делать). Если Insight был создан, но действие не удалось, я еще не уверен, что делать ... Я мог бы позволить Action-less Insights.

Как это реализовать? Временная переменная? Где это будет?

Опять же, я совершенно новый, и я ценю вашу поддержку.

Михай TheActionGame.com

ответ

0

Я точно знаю, что представляет собой ваше действие, но даже если у вас есть основанный на времени принцип, ничто не мешает вам сохранить действие раньше (для приложения на основе браузера, 25 минут - это много времени, в течение которого может произойти множество плохих вещей, например, обновление или сбой подключения).

Мой совет будет заключаться в том, чтобы создать (сохранить) действие немедленно, таким образом позволяя вашему Insight быть связанным с ним. Я бы добавил столбец «статус» в действие, с чем-то вроде «нового» (базового статуса), «подтвержденного» и другого, если нужно.

Затем вы можете работать только с «подтвержденными» действиями и в конечном итоге удалять «новый» один на регулярной основе (например, все, что старше 30 минут, с вашим шагом 25).

Надеюсь, что это имеет смысл (больше дизайна, чем Rails, во всяком случае).

+0

Спасибо - это удаление новых, которые немного отличаются от моего мышления! – bluemihai

0

Вы могли бы добавить колонку ваших действий «insight_ids» в виде массива и его реализации в качестве has_and_belongs_to_many. Затем, когда у вас есть понимание, запишите идентификатор проницательности в массиве

+0

Спасибо, что нашли время ответить! Я точно не знаю, как это будет работать ... Возможно, я найду ссылки, если захочу, но можете ли вы предложить мне место? – bluemihai

Смежные вопросы