#ruby-on-rails #ruby #activerecord #named-scope
#ruby-on-rails #ruby #activerecord #именованная область
Вопрос:
Что это за методы и насколько плохо их переопределять?
irb(main):001:0> Object::respond_to?('private', true)
=> true
irb(main):002:0> Object::respond_to?('public', true)
=> true
Проблема возникает в Rails при попытке определить область с именем private или public для модели. Из-за исправления ошибки https://rails .lighthouseapp.com/projects/8994/tickets/4167-activerecord-named_scope-using-columns-as-the-name-is-buggered теперь есть много предупреждений, таких как:
Creating scope :public. Overwriting existing method MyModel.public.
Ответ №1:
Методы public
and private
на самом деле являются модификаторами доступа ruby.
В принципе, когда вы делаете это:
class Example
public
def something
end
private
def something_else
end
end
Ключевые public
слова and private
на самом деле вообще не являются ключевыми словами, это вызовы методов. Я почти уверен, что переопределять их не очень хорошая идея, поэтому я бы назвал области каким-то другим способом.