我正在尝试呈现一个用户可以回答Survey
的页面(从而创建Application
)。我可以轻松地返回问题(@survey.questions
),我也可以使用构建器帮助器呈现用于回答问题的表单。
控制器:
@survey.questions.each do |question|
@application.answers.build
end
查看:
<%= f.fields_for :answers do |builder| %>
<%= builder.text_area :answer %>
<% end %>
但问题是,这只会使文本区域回答问题,而不会显示实际的问题文本。
将两者结合起来的正确方法是什么,这样我才能显示问题并允许用户回答?
能够做这样的事情会很棒:
<%= f.fields_for :answers do |builder| %>
Q: <%= question.question %>
A: <%= builder.text_area :answer %>
<% end %>
PS如果有人能提出更好的头衔,请做。
答案 0 :(得分:1)
从Rails 4.0.2开始,您可以访问构建器对象的索引。
<%= f.fields_for :answers do |builder| %>
Q: <%= @suvery.questions[builder.index].question %>
A: <%= builder.text_area :answer %>
<% end %>
答案 1 :(得分:1)
question
如果它报告了builder.object
上builder.object.inspect
来电的错误,请执行EventHandler
以查看该类型的对象。