我有一个属性为private的Customer模型。此属性仅对数据库中的3个用户可见。如果这3个用户之一检查此方法(check_box),则客户只能看到它。
我目前正在遍历所有客户:
<% @customers.where(:private => false).each do |single_customer| %>
我的问题是,如果3个用户中的一个已登录,:private => false
已更改为@customers.each do |single_customer|
,我将如何完成,因为我不想再过滤私有属性。< / p>
答案 0 :(得分:1)
你需要改变循环的构建。这个片段是一个元编程,但你可以这样做:
# in the controller for example.
@customers = Customer.where(private: false)
@customers = Customer.all if current_user.is_my_special_user?
在视图中,您只需执行此操作:<% @customers.find_each do |customer| %>
find_each
以获得更好的效果。private: false
@customers