Заполните поля формы Rails - PullRequest
1 голос
/ 12 мая 2010

Это довольно сложно объяснить, но здесь идет речь. У меня есть приложение Rails со студентами, курсами, заданиями и оценками

В представлении студента отображается список всех курсов, которые проходит студент, а также задания, связанные с этими курсами. Во всех заданиях, по которым между учащимся и заданием существует записанная оценка, также указывается оценка, для всех остальных отображается «Нет данных». Я хотел бы иметь ссылку на форму со студентом и предварительно заполненным полем назначения, в зависимости от ссылки, по которой щелкнули.

Вот пример. Питер Паркер получил оценку за «экзамен по математике», но не за «CW по математике». Если пользователь щелкает ссылку «Добавить», мне бы хотелось, чтобы отображалось представление с формой, предварительно заполненной именем ученика и именем задания, готовой для добавления оценки.

альтернативный текст http://img695.imageshack.us/img695/7540/screenshot20100512at180.png

По сути, я не знаю, как лучше всего передать эти данные в форму или как форма отображает данные не редактируемым образом.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 12 мая 2010

Джек, у вас есть несколько вопросов здесь, один из них относительно прост для отображения данных в не редактируемой форме, вы можете отключить их

http://www.w3.org/TR/html401/interact/forms.html#h-17.12

Как мне передать student_id и assignment_id в форму? система будет использоваться только локально, но я все равно проверю. - Джек

Джек, вам нужно что-то в вашем текущем представлении, которое может передать student_id и assignment_id. как ссылка

<%= link_to "show me my assignments", {:action => 'show', :controller => "assignments"}, :student_id => student.id, :assignment_id => student.assignment[0].id %>

(обратите внимание, что, вероятно, лучше использовать спокойные маршруты, но это лучше показывает, что происходит)

то, что будет делать эта ссылка, это вызвать действие show контроллера назначений. Вы можете получить идентификаторы в контроллере, позвонив:

assignment_id = params[:assignment_id]
student_id = params[:student_id]
@student = Student.find(:first, :conditions {:id => student_id})
...

Затем в вашем show.html.erb в каталоге / app / views / assignments / вам нужно будет отобразить код вашей формы, что-то вроде:

<%= form_for @student, :student ...

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

Вы могли бы спросить больше о:

  • Отправка данных на контроллер с ссылка
  • Поиск предметов в вашей базе данных из контроллер
  • Генерация формы из экземпляра переменные в контроллере
  • наконец отключение text_field в форма

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

1 голос
/ 12 мая 2010

Я бы просто связался с формой и передал student_id и assignment_id. Вы не можете действительно сделать поле формы «недоступным для редактирования», но вы можете проверить, что у этого пользователя есть разрешение на просмотр / редактирование перед отображением и сохранением информации.

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