Я взламываю свою первую серьезную попытку в приложении для рельсов и столкнулся с небольшими неприятностями.Отображение содержимого связанной модели
У меня есть две модели, одна называется LegalForm
, а другая - Question
. Один содержит список разных форм, а другой содержит вопросы, связанные с каждым. Или, как я уже отмечал в моем legal_form.rb
class LegalForm < ActiveRecord::Base
has_many :questions
end
Каждая таблица базы данных устанавливается следующим образом:
mysql> select * from questions;
+----+--------------+-----------------+---------------+---------------------------------------------------------------------+---------------------+---------------------+
| id | legalform_id | question_number | question_type | the_question | created_at | updated_at |
+----+--------------+-----------------+---------------+---------------------------------------------------------------------+---------------------+---------------------+
| 1 | 1 | 1 | lorem | lorem ipsum dolor sit amet consectetuer adipiscing elit proin risus | 2014-11-20 21:27:04 | 2014-11-20 21:27:04 |
| 2 | 1 | 2 | lorem | lorem ipsum dolor sit amet consectetuer adipiscing elit proin risus | 2014-11-20 21:27:04 | 2014-11-20 21:27:04 |
| 3 | 1 | 3 | lorem | lorem ipsum dolor sit amet consectetuer adipiscing elit proin risus | 2014-11-20 21:27:04 | 2014-11-20 21:27:04 |
| 4 | 1 | 4 | lorem | lorem ipsum dolor sit amet consectetuer adipiscing elit proin risus | 2014-11-20 21:27:04 | 2014-11-20 21:27:04 |
| 5 | 1 | 5 | lorem | lorem ipsum dolor sit amet consectetuer adipiscing elit proin risus | 2014-11-20 21:27:04 | 2014-11-20 21:27:04 |
| 6 | 1 | 6 | lorem | lorem ipsum dolor sit amet consectetuer adipiscing elit proin risus | 2014-11-20 21:27:04 | 2014-11-20 21:27:04 |
| 7 | 1 | 7 | lorem | lorem ipsum dolor sit amet consectetuer adipiscing elit proin risus | 2014-11-20 21:27:04 | 2014-11-20 21:27:04 |
| 8 | 1 | 8 | lorem | lorem ipsum dolor sit amet consectetuer adipiscing elit proin risus | 2014-11-20 21:27:04 | 2014-11-20 21:27:04 |
| 9 | 1 | 9 | lorem | lorem ipsum dolor sit amet consectetuer adipiscing elit proin risus | 2014-11-20 21:27:04 | 2014-11-20 21:27:04 |
| 10 | 1 | 10 | lorem | lorem ipsum dolor sit amet consectetuer adipiscing elit proin risus | 2014-11-20 21:27:04 | 2014-11-20 21:27:04 |
+----+--------------+-----------------+---------------+---------------------------------------------------------------------+---------------------+---------------------+
10 rows in set (0.00 sec)
mysql> select * from legal_forms;
+----+------------+---------+---------------------+---------------------+
| id | title | company | created_at | updated_at |
+----+------------+---------+---------------------+---------------------+
| 1 | First_Form | 1 | 2014-11-20 20:58:53 | 2014-11-20 20:58:53 |
+----+------------+---------+---------------------+---------------------+
То, что я хотел бы сделать ли отображать вопросы 1- 10, как представлено выше, в представлении show для legal_forms.
Для этого я создал мой legal_forms_controller.rb
следующим образом:
class LegalFormsController < ApplicationController
def index
@legal_forms=LegalForm.all
end
def ufilter
end
def own
end
def show
@legalform = LegalForm.find(params[:id])
@questions = @legalform.questions
end
private
def legal_forms_params
params.require(:legalform).permit(:title, :company)
end
end
И создали свой show.html.erb
файл, как это:
<h1>LegalForms#show</h1>
<p>Find me in app/views/legal_forms/show.html.erb</p>
<% @questions.each do |question| %>
<span><%= question.the_question %> </span>
<% end %>
Однако, когда я перейти на страницу на localhost:3000/legal_forms/1
, я столкнулся со следующими ошибками:
ActiveRecord::StatementInvalid in LegalForms#show Mysql2::Error: Unknown column 'questions.legal_form_id' in 'where clause': SELECT
questions
.* FROMquestions
WHEREquestions
.legal_form_id
= 1
Сообщение об ошибке вызывает событие в цикле (что имеет смысл с учетом ошибки sql). У меня явно есть неправильное представление о чем-то здесь. Любая помощь, попадающая на правильный путь, была бы весьма признательна.
Хорошо играл сэр! – neanderslob