Ответ 1
Да, каждый метод после ключевого слова private
будет закрыт. Если вы хотите вернуться к определению неличных методов, вы можете использовать другое ключевое слово, например public
или protected
.
Если я пишу частный метод, рельсы считают, что каждый метод под словом private
будет закрыт? или он должен быть только закрытым для первого метода?
private
def signed_in_user
redirect_to signin_url, notice: "Please sign in." unless signed_in?
end
def correct_user
@user = User.find(params[:id])
redirect_to(root_path) unless current_user?(@user)
end
означает ли это, что signed_in_user
и correct_user
являются частными? или просто signed_in_user
? Означает ли это, когда мне нужно писать частные методы, это должно быть в конце моего файла сейчас?
Да, каждый метод после ключевого слова private
будет закрыт. Если вы хотите вернуться к определению неличных методов, вы можете использовать другое ключевое слово, например public
или protected
.
Да, все методы под private
являются закрытыми. Обычно вы найдете эти методы в нижней части файла.
Но вы можете "остановить" это, написав другое ключевое слово, например protected
, а затем все последующие методы будут защищены.
Или вы также можете определить свой контроль доступа таким же образом, указав свои методы в качестве аргументов функций управления доступом (public, protected, private):
class SomeClass
def method1
...
end
def method2
...
end
def method3
...
end
# ... more methods def
public :method1, method4
protected :method3
private :method2
end
Как писали другие, каждый метод, следующий за ключевым словом private, является закрытым в Ruby. Это простой синтаксис Ruby и не имеет ничего общего с рельсами.
private
.....
def pvt_meth_1
.....
end
def pvt_meth_2
.....
end
public
def pub_meth_1
......
end
Он работает так же, как c++ private, public tag, так что да, оба они будут приватными