我的Product
模型具有属性private
。我想创建一种方法,允许当前用户能够选择他们的私有产品和仅private = false
的其他产品。
class Product < ActiveRecord::Base
attr_accessible :name, :private
belongs_to :user
def permission
unless self.current_user
unless self.private
end
end
end
end
它是这样开始的吗?我该怎么写这个方法?目标是将其放在选择菜单中。
答案 0 :(得分:2)
我会为此创建一个类方法,您可以将current_user
传递给
class Product < ActiveRecord::Base
attr_accessible :name, :private
belongs_to :user
def self.for_user_or_public(user)
where("user_id = ? or private = ?", user.id, false)
end
end
用法:
products = Product.for_user_or_public(current_user)
至于选择,以下内容应该有效
<%= f.collection_select :owner_id, Product.for_user_or_public(current_user), :user_id, :name, { :include_blank => true } %>