ActiveRecord#exists? или спасение от ActiveRecord:: RecordNotFound

Он доступен в SDK начиная с API 11 - http://developer.android.com/reference/android/widget/NumberPicker.html

17
задан andi 22 May 2009 в 09:05
поделиться

4 ответа

Вы можете попробовать запросить у объекта пользователя его корзину. Допустим, у вас есть пользователь, назначенный на @user , тогда, если у пользователя есть корзина, это будет @ user.cart . Если @ user.cart равно nil , то у них его нет.

Это предполагает, что у вас правильно настроены отношения между моделями.

23
ответ дан 30 November 2019 в 10:19
поделиться

существует? приведет к еще одному оператору SQL, если ребята из ActiveRecord не оптимизировали его (я бы не стал на это рассчитывать).

Так что я бы посоветовал использовать исключение, это намного дешевле, чем оператор SQL.

0
ответ дан 30 November 2019 в 10:19
поделиться

Используйте find_by_id вместо find:

@cart = Cart.find_by_id(params[:id])

nil's, если он не существует, чтобы вы могли при необходимости проверить «if @cart» в вашем контроллере / представлении

34
ответ дан 30 November 2019 в 10:19
поделиться

Почему бы вам не сделать что-нибудь вроде ...

@cart = @user.cart || @user.cart.new

Не беспокойтесь об исключениях или операторах if / else. Тогда, на ваш взгляд, у вас может быть что-то вроде ...

<% if @cart.empty? # or whatever method you use to determine 
     # if there is nothing in the cart...maybe .blank? is fine? 
%>
    <p>Your cart is empty</p>
<% else %>
    <!-- loop through objects in your cart -->
<% end %>
2
ответ дан 30 November 2019 в 10:19
поделиться
Другие вопросы по тегам:

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