我有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 %>
答案 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 %>
结合使用。