Ruby on rails 如何显示具有多个关系的属性?-罗尔
表列包括: 检查控制员Ruby on rails 如何显示具有多个关系的属性?-罗尔,ruby-on-rails,Ruby On Rails,表列包括: 检查控制员 class InspectionsController < ApplicationController def index @inspections = Inspection.all end 我遗漏了什么吗?尝试将ApplicationRecord更改为ActiveRecord::Base,这就是我用来建立关系的方法。让我知道这是否解决了您的问题 class Inspection < ActiveRecord::Base belongs
class InspectionsController < ApplicationController
def index
@inspections = Inspection.all
end
我遗漏了什么吗?尝试将
ApplicationRecord
更改为ActiveRecord::Base
,这就是我用来建立关系的方法。让我知道这是否解决了您的问题
class Inspection < ActiveRecord::Base
belongs_to :acordo
end
class Acordo < ActiveRecord::Base
has_many :inspections, dependent: :destroy
类检查
尝试将ApplicationRecord
更改为ActiveRecord::Base
,这就是我用来建立关系的方法。让我知道这是否解决了您的问题
class Inspection < ActiveRecord::Base
belongs_to :acordo
end
class Acordo < ActiveRecord::Base
has_many :inspections, dependent: :destroy
类检查
您的数据库似乎有检查
,而没有acordo
错误:
检查中的命名错误#索引未定义nil:NilClass的“created_at”方法 。。。这意味着
inspection.acordo==nil
(不是对象),当您想在处获得created\u时,它会提醒您,返回created\u处字段的getter的对象不正确
我的意思是关系正常,但在一次(或多次)检查中,表中有acordo\u id
,但没有acordo
,具有相同的id
尝试检查是否存在与以下内容相关的acordo
:
<% if !inspection.acordo.nil? %>
<%= inspection.acordo.created_at %>
<% end %>
或者进行一些批处理作业(并将其放入调度程序),以查找不属于任何acordo的格式错误的检查,并将其删除或将其移动到表垃圾检查
(以确保数据一致性)。看起来您的数据库有检查
,没有acordo
错误:
检查中的命名错误#索引
未定义nil:NilClass的“created_at”方法
。。。这意味着inspection.acordo==nil
(不是对象),当您想在处获得created\u时,它会提醒您,返回created\u处字段的getter的对象不正确
我的意思是关系正常,但在一次(或多次)检查中,表中有acordo\u id
,但没有acordo
,具有相同的id
尝试检查是否存在与以下内容相关的acordo
:
<% if !inspection.acordo.nil? %>
<%= inspection.acordo.created_at %>
<% end %>
或者进行一些批处理作业(并将其放入调度程序),以查找不属于任何acordo的格式错误的检查,并将其删除或将其移动到表垃圾检查中(以确保数据一致性)。您可能有一个混乱的数据库,在添加检验和acordo之间的关系之前,您是否有任何检验条目?检查您的数据库,查看是否有任何检查的acordo_id列为空。但是,其他答案是正确的,在读取nil对象的属性之前,应该检查relationship inspection.acordo是否存在 您可能有一个混乱的数据库,在添加inspection和acordo之间的关系之前,您是否有任何检查条目?检查您的数据库,查看是否有任何检查的acordo_id列为空。但是,其他答案是正确的,在读取nil对象的属性之前,应该检查relationship inspection.acordo是否存在 你遇到了什么错误?实际输出是什么?你可以这样做,但你必须知道一个ordo idInspection.where(:acordo\u id=>id)
或者你可以使用acordo.where(:Inspection\u id=>Inspection.id)
@LiborZahrádka,我相当肯定他在html文件中所做的工作是有效的,因为Inspection和acordo之间的关系,您可以在检查时调用acordo方法,这将返回与该检查相关联的acordo。这应该可以工作,我一直都是这样做的。错误一定在别处……您应该为rails安装gembetter errors
,它将帮助您调试。安装gem后,重新启动服务器并返回页面,让它出错。你会在右边得到一个框,你可以用它来检查事物的值,当你查找你的错误时,它通常会在使用Rails构建时很有用。你遇到了什么错误?实际输出是什么?你可以这样做,但你必须知道一个ordo idInspection.where(:acordo\u id=>id)
或者你可以使用acordo.where(:Inspection\u id=>Inspection.id)
@LiborZahrádka,我相当肯定他在html文件中所做的工作是有效的,因为Inspection和acordo之间的关系,您可以在检查时调用acordo方法,这将返回与该检查相关联的acordo。这应该可以工作,我一直都是这样做的。错误一定在别处……您应该为rails安装gembetter errors
,它将帮助您调试。安装gem后,重新启动服务器并返回页面,让它出错。您将在右边得到一个框,您可以在查找错误时使用它来检查事物的值,并且它通常在使用rails构建时非常有用
class Inspection < ActiveRecord::Base
belongs_to :acordo
end
class Acordo < ActiveRecord::Base
has_many :inspections, dependent: :destroy
<% if !inspection.acordo.nil? %>
<%= inspection.acordo.created_at %>
<% end %>