Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在父视图中显示子值_Ruby On Rails - Fatal编程技术网

Ruby on rails 在父视图中显示子值

Ruby on rails 在父视图中显示子值,ruby-on-rails,Ruby On Rails,我认为这是一个相对容易的问题,我真的遇到了麻烦,而且可能很容易用我可能做错的事情来纠正 我有个人模型和部门模型 关系是一个人有一个:部门,部门属于一个人 在我看来,当我循环收集人员的属性时,我希望能够访问部门名称。我在Person表中将department_id作为外键,因此我可以看到每个Person部门的有效id,但如何将此id指向检索部门名称 <% @people.each do |p| %> <%= p.name %> <%= p.tel_nu

我认为这是一个相对容易的问题,我真的遇到了麻烦,而且可能很容易用我可能做错的事情来纠正

我有个人模型和部门模型

关系是一个人有一个:部门,部门属于一个人

在我看来,当我循环收集人员的属性时,我希望能够访问部门名称。我在Person表中将department_id作为外键,因此我可以看到每个Person部门的有效id,但如何将此id指向检索部门名称

<% @people.each do |p| %>
    <%= p.name %>
    <%= p.tel_num %>
    <%= p.department_id %>   <- i want this to somehow display the name of department
<% end %>

你们的关系(只有一个)正好相反。外键应该位于“归属”一侧,即您所在的部门

因此,您必须更新您的数据库模式,或者在您的模型中切换
has_one
belowns_to

你可以阅读更多关于这个主题的文章

另外值得注意的是,这是一个非常奇怪的组织,每个部门都由一个人组成

编辑新数据
你的代码不一致。您在原始帖子中使用了
p.department\u id
,之后使用了
p.person\u department\u id

注意,rails无法从您的头脑中读取外键名称,因此默认情况下假定modelname\u id。如果你想要不同的东西


此外,请在您的问题中发布更新的代码,而不是新的答案。有人可能会感到困惑。

在departments表中插入个人id是没有意义的,我只有3个部门,只需使用该表来容纳它们。我会尝试切换关系,但同样,如何在我的视图中挤出部门名称值???@snomy_mcnoodle
p.department.name
真的,官方rails指南并不难阅读。未定义的方法“department”for#我会阅读你给我的链接,但我理解人际关系的概念和我所做的所有其他事情,这很简单,但它就是不起作用@斯努米·麦克拉面检查。1) 在
中有
所属的部门
,2)在
部门
中有
一个:人
,3)
部门id
不是零(您可以在视图中打印并查看)。否则,发布代码可能会有所帮助。
Class Department < ActiveRecord::Base
    has_one :person
end
Class Person < ActiveRecord::BAse
    belongs_to :department
end
<% @people.each do |p| %>
<p>Name: <%= "#{p.name}" %> </p>
<p>Start Date: <%= "#{p.start_date}" %> </p>
<p>Current Department: <%= "#{p.department_id}" %> <- displays relevant id
<% end %>
undefined method `department' for #<Person:0x47f9040>