我有3个表,cooler
,cpu
,socket
。一个cooler
(支持/)has_many
sockets
和cpu
belongs_to
socket
。现在,检查cooler
是否支持cpu
的最简单方法是什么?
@cooler.sockets.include? @cpu.socket # => False always no matter what
我尝试使用以下方法检查类型:
@cooler.sockets.class
#=> #Socket::ActiveRecord_Associations_CollectionProxy
答案 0 :(得分:3)
您的代码:
false
始终返回Cpu
,因为在这里您要检查socket
的模型实例Socket
属性是否包含在对应于Cooler
模型实例的数组中.exists?
模型实例,这种情况永远不会发生。
但是,您可以使用@cooler.sockets.exists?(socket: @cpu.socket)
完成所需内容:
.present?
或@cooler.sockets.where(socket: @cpu.socket).present?
:
// controller work.js
import Ember from "ember";
export default Ember.Controller.extend({
firstElement: function () {
return this.get('model').get('firstObject'); // or this.get('model.firstObject');
}.property('model.[]')
});
答案 1 :(得分:3)