Ошибка Ruby on Rails: неопределенный метод для nil: NilClass

&& не является арифметическим оператором. Это логично, и оператор возвращает логическое значение, либо true, либо false в C ++.

Если вы знакомы с логическими операциями, вы должны знать, что только true and true возвращает true. Если любой из операндов логического и оператора false, то все выражение false.

Далее, в C ++ все, кроме 0, NULL (nullptr) и false считается true, в противном случае эти три члена false.

Поэтому в вашем эксперименте я предполагаю, что вы всегда вводили ненулевые элементы, поэтому ваше выражение всегда true. И в отличие от других языков программирования, например, Python или Java, C ++ не будет автоматически распечатывать текст логических значений. Он просто покажет 0 для false и 1 для true. Поэтому в вашей демонстрации вы всегда видите 1 на экране.

0
задан mike zenon 18 January 2019 в 23:17
поделиться

1 ответ

Если я читаю ваш исходный код, кажется, что вам просто нужно перечислить продукт с ценой выше 200, который вы можете сделать с помощью , где , позже, возможно, если вы захотите дополнительно отфильтровать данные, вы можете узнать [112 ] ransack gem

это для вашего index.html.erb

<table>
  <% @products.each do |product| %>
    <tr>
      <td><%= product.title %></td>
      <td><%= product.price %></td>
    </tr>
  <% end %>
</table>

это ваш ProductsController

class ProductsController < ApplicationController
  def index
    # if you want directly to filter just the list product that has price above 200 
    # then you can use where, your view just to show the result of @products

    @products = Product.where('price > ?',200)
  end
end
0
ответ дан widjajayd 18 January 2019 в 23:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: