2014-11-21 58 views
0

我在第一次认真地尝试Rails应用程序,并且遇到了一些麻烦。显示相关模型的内容

我有两种模式,一种叫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,如上所述,在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 .* FROM questions WHERE questions . legal_form_id = 1

错误消息将循环中的问题(在给出sql错误的情况下有意义)引脚。我清楚地明白了这里的一些错误想法。任何帮助正确的轨道将不胜感激。

回答

1

显然,您的专栏名称存在问题。

您的专栏名称是legalform_id,而您请求legal_form_id

我不知道你如何定义你的问题模型,但那里有什么可疑的东西。

+0

干得好,先生! – neanderslob 2014-11-21 00:19:14

1

如果您在模型中使用的has_many协会 - 默认的foreing关键是model_name_id 您需要foreing_key添加到您的has_many assotiation为legalform_id或数据库重命名列legal_form_id

相关问题