Лучший способ сделать это RESTful и правильно: Ruby on Rails - PullRequest
1 голос
/ 28 января 2010

Это, наверное, легко, но я новичок в том, чтобы иногда оборачиваться вокруг этих вещей.

Сводка: я пытаюсь составить контрольный список, через который технические специалисты проходят и отвечают на вопросы о том, что было завершено или сделано на местах. Затем технические специалисты передают это на рассмотрение. Вопросы создаются, управляются и обновляются менеджерами.

UPDATE Я дизайнер, поэтому я естественно намагничиваюсь на PS. Вот фото концепции: http://screensnapr.com/u/a9k1ps.png

модель контрольного списка содержит: заголовок , подзаголовок , вопрос и ответ .

Все является строкой, кроме поля ответа, которое является целым числом для флажка.

Я не совсем уверен, с какой страницы RESTful начинать после этого. Мне нужно, чтобы заголовок отображался вот так (на виду), но редактировался / передавался через флажок на одной странице.

Этот вид должен отображать контрольный список и редактировать контрольный список одновременно. Менеджер должен иметь возможность добавлять новые заголовки, подзаголовки и вопросы, на которые затем могут ответить технические специалисты.

<% @checklists.each do |checklist| %>
<h1> <%=h checklist.header %> </h1>
<h3> <%=h checklist.subheader %> </h3>
<ul>
   <li>
  <%=h checklist.question %>
  <% form_for @checklists do |f| %>
  <%= f.check_box("checklist", "answer") %>
  <% end %>
  </li>
</ul>
<% end %>

Будет ли это работать, и будет ли лучше добавить это в индекс или изменить действие? Буду ли я лучше делать какую-то часть? nested_attributes? Я немного растерялся, потому что пытаюсь управлять двумя действиями (индексировать, редактировать) в одном файле.

Ответы [ 2 ]

2 голосов
/ 28 января 2010

Если вы хотите, чтобы менеджер обновил / изменил флажки, а технические специалисты заполнили формы, вам понадобится пара дополнительных таблиц. Один содержит вопросы, а другой содержит значения, которые проверены. Кроме того, кажется, лучше разделить контроллер на два, по одному для каждого типа пользователя :

Для менеджера вы можете просто сделать контроллер, как и любой другой контроллер: используя действие index, чтобы показать все вопросы, и действия edit / update / etc, чтобы изменить их.

Для части технического специалиста необходимо определить таблицу проекта, содержащую некоторую информацию о проекте, над которым работает техник. И таблица флажков, содержащая project_id и checkbox_ids, чтобы связать флажки с определенным проектом.

См. Руководство по ассоциациям активных записей для получения дополнительной информации о создании связей между таблицами.

0 голосов
/ 28 января 2010

Не смотря на это дальше, я готов поспорить, что вы хотите form_for checklist.question и POST to questions_controller, который будет использовать действие #update.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...