#ruby-on-rails #ruby
#ruby-on-rails #ruby
Вопрос:
Пожалуйста, игнорируйте значение ruby для «self» в моем вопросе.Я имею в виду это стандартным английским способом.
У меня есть модель с именем subscription, и я добавил определение с именем subscribed.
Я хочу сделать что-то вроде:
def subscribed
@subscription = Subscription.where(:thread_id => this.thread_id, :user_id => this.user_id)
end
где this
относится к текущему экземпляру, а не к какому-либо глобальному классу.
Как мне это сделать?
Ответ №1:
Если вы используете self
в тех местах, где вы написали this
(или просто вообще не используете), это будет ссылаться на текущий экземпляр, а не на «какой-то глобальный класс».
Комментарии:
1. Я думаю, что под «текущим экземпляром» он подразумевает «объект подписки, который в данный момент проверяется
where
методом».2. @Chuck: я не могу себе представить, что он имел в виду. Если бы он это сделал,
:thread_id => this.thread_id, :user_id => this.user_id
не имело бы никакого смысла.3. Честно говоря, для меня это не имело большого смысла в любом случае. Казалось, это было то, что он пытался указать, сказав «Игнорировать значение Ruby
self
» .
Ответ №2:
Просто используйте имена полей, и это должно работать
def subscribed
@subscription = Subscription.where(:thread_id => thread_id, :user_id => user_id)
end