Ruby on Rails 2 - 课程,问题和解答的复杂形式答案

时间:2010-10-07 15:08:22

标签: ruby-on-rails

我有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 %>

- partial _question_fields.html.erb

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

- partial _answer_fields.html.erb

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

2 个答案:

答案 0 :(得分:0)

如果我理解你要做什么,我相信你需要更改_question_fields.html.erb中的一行:

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

到此:

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

这将使问题显示在答案的文本区域之上。此代码肯定会确保用户无法更改问题。如果您希望问题字段保留为文本区域但被禁用,那么我认为您需要这样做:

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

我不确定禁用的部分是否正确,但它就是这样。

希望这有帮助。

答案 1 :(得分:0)

您应该可以像这样访问“问题对象”:

<%= f.object.prompt %>

哪个应输出传递到fields_for的问题对象的“提示”字段。 我不确定你是否可以将其与<%= f.label %>结合使用。

祝你好运!
〜罗比