如何在视图中显示列表

时间:2016-06-19 13:42:25

标签: ruby-on-rails model-view-controller views

我想根据用户属性展示产品。所以基本上我是根据用户属性从产品类中检索对象。我不知道如何在我的观点中为这些创建列表。如何通过属性呈现它们?这些是我现在的观点,我现在展示了所有产品:

<button ng-click="main.authDialog($event)">
  <span class="ng-scope">Sign Up</span>
  <div class="md-ripple-container"></div>
</button>

我的user.rb

<% @products.each do |product| %>
      <%= render "product_row", product: product, order_item: @order_item %>
    <% end %>

我的控制员:

def products_for_gender
    if gender == 'male'
      Product.where("product_id: '9'")
    elsif gender == 'female'
      Product.where("product_id: '10'")
    else
      Product.where("product_id: '11'")
    end
  end

现在,当我尝试访问产品视图时,我收到此错误:

def index
    @products = Product.all
    @products = current_user.products_for_gender
    @order_item = current_order.order_items.new
  end

1 个答案:

答案 0 :(得分:0)

.where()查询中存在语法错误:

Product.where("product_id: '9'")

这应该是:

Product.where("product_id = 9")
# or even better:
Product.where(product_id: 9)

更新:(根据作者评论)

Product.where(id: 9)
# or, if you want to make sure the products exist
Product.find(9)