我的项目中有以下模型
<div id="attributes_list">
<%= @attributes.each do |attr| %>
<% attr.attribute_vals.each do |val| %>
- <%= val.name %>
<% end %>
<% end %>
</div>
我试图在我的视图中执行以下操作
Attribute.all
其中@attributes等于class Attribute < ApplicationRecord
validates :name, presence: true
validates :name, uniqueness: true
has_many :attribute_vals
end
。
但是当我加载页面时,会抛出以下错误
您尝试在模型AttributeVal上定义名为属性的关联,但这会与Active Record已定义的方法属性冲突。请选择其他关联名称。
我的模特
class AttributeVal < ApplicationRecord
validates :name, presence: true
validates :name, uniqueness: { scope: :attribute_id }
belongs_to :attribute
end
const foo = countsMap.get(item); // get the value of key `item` from a Map
const bar = foo + 1 || 1; // Increment foo by 1, or start at 1
// n.b. this works because `undefined + 1; // NaN`, I would instead
// recommend `(foo || 0) + 1`
const baz = countsMap.set(item, bar); // set the value of key `item` to `bar`
// n.b. this is chainable (i.e. returns `countsMap`)
const fn = (x, y) => x + y; // a function which takes x and y, and returns their sum
// so finally,
const reducor = (countsMap, item) => countsMap.set(item, countsMap.get(item) + 1 || 1);
// 1. look up from map
// 2. increment 1, or start at 1
// 3. set back to map
// 4. return map
有什么方法可以访问这个子集合吗?
答案 0 :(得分:1)
因为ApplicationRecord已经使用了一个名为“attribute”的方法。我想你应该改变你的型号名称。但是如果你想这样使用,你可以这样做:
has_one :association_name, :foreign_key: "key_name", class_name: "ModelClass"
可能是您的项目:
class AttributeVal < ApplicationRecord
belongs_to :new_association_name, foreign_key: "attribute_val_id", class_name: "Attribute"
end
来源: