我有 3 个模型,调查 - 问题 - 答案,每个 has_many/belongs_to 关系。
这是输入形式。
<ol>
<% @questions.each do |question| %>
<%= simple_fields_for "questions[#{question.id}]" do |builder| %>
<li>
<%= builder.input :answer, :collection => question.answers, :as => :radio_buttons,
:label_method => :content, :value_method => :id, :label => question.content %>
</li>
<% end %>
<% end %>
</ol>
我意识到radio_buttons 从日志中效果很好。
Parameters: {"survey_id"=>"23", "commit"=>"Submit Exam", "questions"=>{"8"=>{"answer"=>"28"}, "7"=>{"answer"=>"24"}, "6"=>{"answer"=>"21"}}, "authenticity_token"=>"m/16DAjhDrEH3/8fzJLDeiqi/d+VkZJiOeqK5TuLpSw=", "utf8"=>"✓"}
我可以像这样在控制器的 create 方法中获取每个值。到目前为止,一切都很好。
@checked_answers = params[:questions]
我想在显示视图中显示用户的输入。但是我不能在 show 方法中使用 @checked_answers 值。我想我必须将它保存在数据库中,也许我必须在数据库表中创建另一列来保存@checked_answers。但这不是一个简单的数据!(如字符串或整数......)有没有什么好方法可以避免将数据保存在数据库中?如果我可以直接在显示视图中使用该参数,所有问题都可以解决!