newbie: activerecord сравнивает object.count со значением генерирует неопределенный метод `to_sym 'для nil: NilClass - PullRequest
0 голосов
/ 05 марта 2012
def has_photo

if user_signed_in?

  @user = User.where(:id => current_user.id).first

  if @user.has_photo?
    if Asset.where(:attachable_id => current_user.id).count < 4

      def sub_layout
        "application"
      end

      render :template => "profiles/no_photo"

    end
  end
end

конец

Как правильно сравнивать Asset.count?

1 Ответ

2 голосов
/ 05 марта 2012

Asset.where является запросом, вам было бы намного лучше использовать отношения для этого.

Если

Class User
  has_many :assets
end

Class Asset
  belongs_to :user
end

Вы можете просто использовать:

@user.assets.count < 4

До тех пор, пока в активе есть поле user_id (или использовать отношение: attachable_id), которое установлено правильно (отношения могут сделать это и в том случае, если вы правильно создаете актив)

Кстати, если: id уникален для каждого пользователя (так и должно быть), вы можете переписать

@user = User.where(:id => current_user.id).first

а

@user = User.find(current_user.id)

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...