Ruby on rails 在有条件的记录上循环
我有一个属性为private的客户模型。此属性仅对数据库中总共3个用户可见。如果此方法(复选框)被这3个用户中的一个选中,则客户仅对他们可见 我目前正在对所有客户进行如下循环:Ruby on rails 在有条件的记录上循环,ruby-on-rails,Ruby On Rails,我有一个属性为private的客户模型。此属性仅对数据库中总共3个用户可见。如果此方法(复选框)被这3个用户中的一个选中,则客户仅对他们可见 我目前正在对所有客户进行如下循环: <% @customers.where(:private => false).each do |single_customer| %> # in the controller for example. @customers = Customer.where(private: false) @custo
<% @customers.where(:private => false).each do |single_customer| %>
# in the controller for example.
@customers = Customer.where(private: false)
@customers = Customer.all if current_user.is_my_special_user?
false)。每个do |单个|客户|%>
我的问题是,当3个用户中的一个用户登录时,
:private=>false
将更改为@customers。每个用户都会| single|u customer |
,因为这样我就不想再过滤private属性了。您需要更改循环的构建。这段代码有点像元编程,但您可以这样做:
<% @customers.where(:private => false).each do |single_customer| %>
# in the controller for example.
@customers = Customer.where(private: false)
@customers = Customer.all if current_user.is_my_special_user?
在视图中,您只需执行以下操作:
- 如果您的收藏量很大,请使用
,以获得更好的性能查找每个
- 默认情况下,您使用
private:false
- 如果检测到用户已登录,则覆盖
@customers
当前用户
方法,也不知道他类中的逻辑。因此,元编程是指所使用的方法。工作完美,谢谢!而不是@customers=customers..
它应该是Customer
。接受了答案。这里没有关于元编程的内容。元编程是一种技术,通过这种技术,您可以编写在运行时自动动态编写代码的代码。这意味着您可以在运行时定义方法和类。