我有两个表:
制造商和产品
两个表都有一个唯一的“签名”列。
制造商模型:
class Manufacturer < ApplicationRecord
has_many :products, foreign_key: 'signature', primary_key: 'signature'
end
产品型号:
class Product < ApplicationRecord
belongs_to :manufacturer, foreign_key: 'signature', primary_key: 'signature'
end
在我的产品索引视图中,我想显示表制造商的“活动”列的值。
# products/index.html.erb
<% @products.each do |product| %>
<%= product.manufacturer.active %>
<% end %>
我遇到错误
nil:NilClass的未定义方法“活动”
如何从产品索引视图访问制造商模型的活动属性?我想
product.manufacturer.active
不是正确的方法。
答案 0 :(得分:1)
在您的代码示例中,您必须确保每个 const val=[{
x:"second",
y:2
},{
x:"first",
y:1
}];
function compare(a,b){return a.x.length-b.x.length};
val.sort(compare);
console.log(val);
都有一个product
。否则manufacturer
在.active
上将失败。
如果没有制造商的产品,则可以作为故障保存,可以使用here所述的安全导航操作员manufacturer = nil
,&.
可用
ruby2.3
作为替代方案,您可以像有条件地进行product.manufacturer&.active
调用
.active
或
product.manufacturer.active unless manufactuer.nil?