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