视图不是基于范围?

时间:2011-12-13 23:57:44

标签: ruby-on-rails ruby ruby-on-rails-3

我在Product模型中定义了一个范围:

class Product < ActiveRecord::Base
  attr_accessible :send_to_data # this is a boolean column
  scope :my_products, where(:send_to_data => true)
end

然后在我的控制器中:

class ProductsController < ApplicationController
  def index
    @my_products = current_user.products
  end
end

最后我的观点:

<% for product in @my_products %>
   <%= product.user_id %>
   <%= product.name %>
   <%= product.send_to_data %>
<% end %>

但它仍会呈现所有产品,包括:send_to_data标记为false的产品。

如何仅为我的示波器获取?

1 个答案:

答案 0 :(得分:2)

指定范围必须直接用于以下产品:

def index
  @my_products = current_user.products.my_products
end

命名范围不会更改“产品”关系的默认行为。当你想使用它时,它必须通过它的名字来调用。