【发布时间】:2021-12-09 05:06:23
【问题描述】:
CmsService::SearchContentPractiseProblems.form_fields.each do |field|
if field[:key].to_s === "answer_a"
row field[:key] do
content['answers']['answer_a']
end
elsif field[:key].to_s === "answer_b"
row field[:key] do
content['answers']['answer_b']
end
elsif field[:key].to_s === "answer_c"
row field[:key] do
content['answers']['answer_c']
end
elsif field[:key].to_s === "answer_d"
row field[:key] do
content['answers']['answer_d']
end
else
row field[:key] do
content[field[:key].to_s]
end
end
如果 elsif 通过循环,我想在此处编写以下内容,但我一直无法获得解决方案,有人可以帮助我吗
我的表单域是:
def self.form_fields
[
{ key: :code, label: "Code"},
{ key: :ordering, label: "Ordering"},
{ key: :content, label: "Practise Question", editable: true},
{ key: :answer_a, label: "Answer A", editable: true},
{ key: :answer_b, label: "Answer B", editable: true},
{ key: :answer_c, label: "Answer C", editable: true},
{ key: :answer_d, label: "Answer D", editable: true},
{ key: :explaination, label: "Answer Exp.", editable: true}
]
end
处理g后我想要的响应是
{
"code": "ascending-order-pq-1",
"content": "Arrange the following numbers in ascending order.\n22, 2322, 2222, 222",
"ordering": 1,
"answers": {
"answer_b": "22 < 222 < 2222 < 2322",
"answer_a": "22 < 222 < 2322 < 2222",
"answer_d": "2322 < 2222 < 222 < 22",
"answer_c": "22 < 2222 < 222 < 2322"
},
"correct": "answer_b",
"explaination": "While comparing multi-digit numbers, the numbers with the least number of digits come first. For multi-digit numbers with the same number of digits, we compare digits from left to right."
}
【问题讨论】:
-
可能是
answers = ['answer_a', 'answer_b', 'answer_c', 'answer_d']; f = field[:key].to_s; if answers.include?(f); row field[:key] { content['answers'][f] }; else; row field[:key] { content[field[:key].to_s }; end。
标签: ruby-on-rails ruby loops maps activeadmin