Доступ к области действия в методе класса - PullRequest
0 голосов
/ 29 мая 2018

У меня есть модель User, которая имеет отношение tags:

class User < ActiveRecord::Base #id, name, email, ...
  has_many :tags
end

class Tag < ActiveRecord::Base #id, name, ...
  def self.add_tag(tag)
    self.create!({user_id:user.id, tag: tag})
  end
end

User.tags.add_tag("abc")

Как метод класса add_tag знает отношение, на которое ссылаются?

1 Ответ

0 голосов
/ 29 мая 2018

I Очевидно, что вызов метода create в классе установит область видимости соответствующим образом

class User < ActiveRecord::Base #id, name, email, ...
  has_many :tags
end

class Tag < ActiveRecord::Base #id, name, ...
  def self.add_tag(tag)
    self.create!({ tag: tag})
  end
end

user.tags.add_tag("abc")

Это будет прекрасно работать

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