在单独的模型中构建非常简单的嵌套表单,其中包含问题和答案

时间:2014-12-05 00:54:49

标签: ruby-on-rails ruby forms ruby-on-rails-4 nested-forms

我一直在努力学习构建嵌套的rails表单,并且似乎不再使用单独的模型来存储问题和答案。

为了弄清楚,我尝试构建一个非常简单的应用,其中我有三个模型:my_formquestionanswer。对于这个应用,我没有使用用户身份验证或类似的东西,这意味着每个表单has_many :questions和每个问题has_one :answer。这当然意味着使用单独的问答模型是不合适的,但我试图理解这种形式嵌套的最基本版本,以便我可以将它应用于更复杂的情况。

所以我输入了所有问题并保存到数据库中。其各自的表格包含以下列:

+------------------+----------+------+-----+---------+----------------+
| Field            | Type     | Null | Key | Default | Extra          |
+------------------+----------+------+-----+---------+----------------+
| id               | int(11)  | NO   | PRI | NULL    | auto_increment |
| question_number  | int(11)  | YES  |     | NULL    |                |
| question_content | text     | YES  |     | NULL    |                |
| my_form_id       | int(11)  | YES  | MUL | NULL    |                |
| created_at       | datetime | YES  |     | NULL    |                |
| updated_at       | datetime | YES  |     | NULL    |                |
+------------------+----------+------+-----+---------+----------------+

我的答案表是这样设置的:

mysql> show columns in answers;  
+----------------+----------+------+-----+---------+----------------+
| Field          | Type     | Null | Key | Default | Extra          |
+----------------+----------+------+-----+---------+----------------+
| id             | int(11)  | NO   | PRI | NULL    | auto_increment |
| answer_content | text     | YES  |     | NULL    |                |
| question_id    | int(11)  | YES  | MUL | NULL    |                |
| created_at     | datetime | YES  |     | NULL    |                |
| updated_at     | datetime | YES  |     | NULL    |                |
+----------------+----------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

我可以使用show.html.erb视图轻松显示每个问题:

<h1><%= @legal_form.title %></h1>
<p><%= @legal_form.description %></p>
<ul>
  <% @legal_form.questions.each do |question| %>
<li><%= question.question_content %></li>
  <% end %>
</ul>

我的问题如何创建answers.html.erb视图以将简单文本字段与写入我的答案表的每个问题相匹配?

我意识到这一点非常简单,并且有几个宝石可以做这种事情,还有一些将用户纳入其中的教程。我只是在寻找一个基本的例子来理解基本面。

0 个答案:

没有答案