Ruby on Rails 2 - сложные формы для уроков, вопросов и ответов - PullRequest
2 голосов
/ 07 октября 2010

У меня есть 4 модели - пользователи, уроки, вопросы и ответы.Каждый пользователь может создать урок с некоторыми вопросами, а затем попросить других пользователей ответить на эти вопросы и отправить форму.Я столкнулся с проблемой создания представления для отображения урока со списком вопросов и пустым полем для ответов под каждым вопросом.У меня есть рабочий код (показанный здесь), который просматривает вопросы и показывает текстовое поле для каждого вопроса и ответа.Я пытаюсь изменить его так, чтобы вопросы отображались в виде заголовков, а ответы - в виде редактируемых полей.Я надеюсь это имеет смысл.Я нуб с RoR.Я не мог найти ответ в Интернете.Большое спасибо.

- Просмотр

<% form_for @lesson do |f| %>
 <%= f.error_messages %>
  <% f.fields_for :questions do |builder| %>
   <%= render "question_fields", :f => builder %>
  <% end %>
 <p><%= f.submit "Submit Answers"%>
<% end %>

- частичное _question_fields.html.erb

<%= f.text_area :prompt, :rows => 1 %> <br />
<% f.fields_for :answers do |builder| %>
 <%= render "answer_fields", :ff => builder %>
<% end %><br />

- частичное _answer_fields.html.erb

<%= ff.text_area :data, :rows => 3 %>

Ответы [ 2 ]

0 голосов
/ 08 октября 2010

Вы должны иметь возможность доступа к самому «объекту вопроса» следующим образом:

<%= f.object.prompt %>

Который должен вывести поле «подсказка» объекта вопроса, переданного в fields_for. Я не уверен, что вы можете объединить это с <%= f.label %> или нет.

Удачи!
~ Робби

0 голосов
/ 08 октября 2010

Если я понимаю, что вы пытаетесь сделать, я считаю, что вам нужно изменить строку в _question_fields.html.erb:

<%= f.text_area :prompt, :rows => 1 %> <br />

к этому:

<%= f.label :prompt %> <br />

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

<%= f.text_area :prompt, :rows => 1, :disabled => "disabled" %> <br />

Я не уверен, что отключенная часть верна, но это что-то вроде этого.

Надеюсь, это поможет.

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